-1
机器A上装有VS2012,上面有一个小型的VC++ .NET工程,我们用64位配置构建这个工程,它生成一个DLL(比如TestDLL.dll)。64位汇编程序未能加载
在同一台机器A,如果我创建一个小型控制台应用程序,并写
var objBroker = new CUccxBroker();
,它工作得很好, “CUccxBroker
” 是“TextDLL.dll
”的一部分。但是,如果我复制机器A所产生的DLL,并将其粘贴在机器B,写相同的代码就失败,错误“
Couldn't load file or assembly TestDLL.dll, file or one of its dependencies not found
”
VS versio在两台机器上都是相同的,不知道在我编译机器上的代码然后使用DLL之后开始工作。任何帮助都会很棒。
听起来像你的TestDLL.dll有一个外部引用/依赖关系,机器A有但机器B没有。检查你的VC++项目的参考。如果我记得正确,VC++项目可以是静态绑定或动态绑定。静态意味着库/可执行文件中包含所有必需的参考代码。动态意味着它期望引用(MS C++库可能?)可用。 – Mmm
您好@Mmm,感谢您的帮助,我忘了补充一点,如果我在机器B上构建项目,它就开始工作。在VS我应该chk的引用,对不起,我没有C++的经验.. – shashank
如果我不得不猜测,我会说你有一个不同版本的机器B上所需的C + +库比你A。寻找项目某处的属性......应该有一个与静态库链接的选项,而不是动态链接。 – Mmm