Vb.net 无法在已部署的可执行文件中加载dll

Vb.net 无法在已部署的可执行文件中加载dll,vb.net,dll,installshield,Vb.net,Dll,Installshield,我在VisualStudio中创建了一个程序,该程序在许多机器中运行良好(安装程序是使用installshield创建的)。但是,在一台特定的机器上,可执行文件无法加载到我正在使用的dll中。我可以通过以管理员身份运行可执行文件来解决这个问题,但这不是一个合适的解决方案。有人有什么想法吗?如果没有基本的错误日志/堆栈跟踪/分析数据,就不可能回答这个问题。可能是EXE对DLL1有依赖关系,而DLL1对DLL2有依赖关系,并且DLL2未包含在安装程序中。这可能是因为大多数计算机碰巧已经加载了DLL2

我在VisualStudio中创建了一个程序,该程序在许多机器中运行良好(安装程序是使用installshield创建的)。但是,在一台特定的机器上,可执行文件无法加载到我正在使用的dll中。我可以通过以管理员身份运行可执行文件来解决这个问题,但这不是一个合适的解决方案。有人有什么想法吗?

如果没有基本的错误日志/堆栈跟踪/分析数据,就不可能回答这个问题。可能是EXE对DLL1有依赖关系,而DLL1对DLL2有依赖关系,并且DLL2未包含在安装程序中。这可能是因为大多数计算机碰巧已经加载了DLL2,所以DLL 1,但在某些计算机上缺少DLL2,所以无法加载DLL1


安装程序开发与其他开发非常相似。第1步:需求第2步:设计第3步:构建第4步:测试

您的陈述之所以有意义,并不是因为当使用管理权限运行时,软件似乎运行成功。这只是一个高级示例。不可能笼统地回答。我感谢你的帮助。这是令人困惑的:我不明白为什么它会在一些机器上工作,而不是在其他机器上。在我看来,这个问题可能是基于权限的,这就解释了为什么以管理员身份运行会起作用。但我不知道如何解决这个问题。你必须找出根本原因,然后它才会有意义。可以在某些计算机上启用UAC,但在其他计算机上不启用。可能是注册表项或文件/文件夹权限不同。您可以使用更多信息获得更好的响应。dll是托管的还是本机的?您是否使用静态工具(如reflector/ilspy或dependency walker)或运行时工具(如fuslogvw或loader snaps)检查过依赖关系?