C# 无法加载64位程序集

C# 无法加载64位程序集,c#,.net,clr,C#,.net,Clr,有一台安装了VS2012的机器,还有一个小的VC++.NET项目,我们以64位配置构建这个项目,它生成一个DLL(比如TestDLL.DLL) 在同一台机器上,如果我创建一个小型控制台应用程序并编写 var objBroker=new CUccxBroker(),工作正常,“CUccxBroker”是“TextDLL.dll”的一部分 但是,如果复制在机器A上生成的DLL,并将其粘贴到机器B上,则会编写相同的代码,但失败时会出现错误“无法加载文件或程序集TestDLL.DLL,找不到文件或其依赖

有一台安装了VS2012的机器,还有一个小的VC++.NET项目,我们以64位配置构建这个项目,它生成一个DLL(比如TestDLL.DLL)

  • 在同一台机器上,如果我创建一个小型控制台应用程序并编写
    var objBroker=new CUccxBroker(),工作正常,“
    CUccxBroker
    ”是“
    TextDLL.dll
    ”的一部分

  • 但是,如果复制在机器A上生成的DLL,并将其粘贴到机器B上,则会编写相同的代码,但失败时会出现错误“
    无法加载文件或程序集TestDLL.DLL,找不到文件或其依赖项之一


  • 两台机器上的VS版本相同,不确定在我编译机器上的代码然后使用DLL后什么开始工作。任何帮助都会很好。

    下载一份“dependency walker”实用程序的副本(网络上提供的免费软件)。这将以图形方式显示一个树,显示程序集的依赖项,这些程序集的依赖项(非循环),等等。它突出显示缺少的依赖项,使查找缺少的内容变得容易。

    听起来您的TestDLL.dll有一个外部引用/依赖项,机器A有,但机器B没有。请检查您的VC++项目的引用。如果我没记错,VC++项目可以是静态绑定或动态绑定。静态意味着所有需要Road参考代码包含在库/可执行文件中。动态意味着它期望引用(MS C++库可能?)你好,嗯,谢谢你的帮助,我忘了加上,如果我在B机上建立这个项目,它就开始工作了。在VS我应该在哪里引用,抱歉我没有C++经验。如果我必须猜,我会说你在机器B上有一个与你所需要的C++库不同的版本。…应该有一个链接静态库而不是动态库的选项。