无法加载程序集。找不到模块。没有VisualStudio的PC

时间:2014-10-08 13:30:07

标签: .net visual-c++ visual-studio-2012 reflection .net-assembly

我是StackOverflow的新手。请事先原谅我英文的错误。

我有以下问题:

我正在VC ++ / CLI(.NET 4.0)中构建一个使用反射的插件系统的应用程序。所有的插件都是由我自己开发的。

每个插件都是在运行时检测并加载的程序集(dll)。主应用程序和每个插件引用第三个程序集,该程序集仅包含负载反射步骤中 safe-cast 的类接口。此程序集构建到与主应用程序和所有插件相同的文件夹。

问题是:当我在Visual Studio中执行 - 调试(F5)应用程序时,一切正常。此外,当应用程序在VS外部执行时,它也可以正常工作。但是,当应用程序在没有VS的PC上执行时,我收到以下错误: “无法加载文件或程序集'PluginInterface.dll'或其依赖项之一。无法找到指定的模块”

当主应用程序中首次加载插件程序集(Assembly :: LoadFrom(filename))时,似乎会发生错误。不能确定,因为正如我所说,发生错误的计算机,没有安装VS进行调试,否则不会发生错误。这一点是应用程序中第一次使用这些程序集。

部署PC都安装了.NET 4.0和VC ++ redist。

为什么会这样?我能做什么?如您所见,此问题正在进行部署。

1 个答案:

答案 0 :(得分:0)

固定!!使用" Process Monitor"来自Microsoft的实用程序,我意识到调用/引用级联中的一些程序集dll是在调试模式下构建的(例如,他们调用了MSVCRT110D.dll。请参阅" D"?),所以他们在加载时失败,导致调用者/引用者崩溃。必须仔细检查所有依赖性并构建配置和输出。繁重的工作......到目前为止,整个解决方案(真正的两个解决方案)包含52个项目并且正在上升。 汉斯!!,我已经使用过ProcMon和Dependz,但没有注意到错误。你的指点让我再试一次,然后陷入困境!