Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VS安装程序部署后无法加载DLL_C#_Visual Studio 2010_Deployment - Fatal编程技术网

C# VS安装程序部署后无法加载DLL

C# VS安装程序部署后无法加载DLL,c#,visual-studio-2010,deployment,C#,Visual Studio 2010,Deployment,我试图部署的C#应用程序有两个关键引用,A.dll和B.dll 首先,我使用InstallShield LE,它将发布文件夹中的所有内容(.dll和.pdb)都包含到应用程序文件中,应用程序可以毫无问题地部署到不同的计算机上。该应用程序安装后大约6米 然后,我开始使用VS安装程序,将“主输出”包含到应用程序文件夹中。我可以看到A.dll和B.dll都包括在内。在另一台计算机上安装应用程序后,A和B也存在于安装目录中。当我运行应用程序时,它会给我“无法加载文件或程序集”B.dll“或其依赖项之一”

我试图部署的C#应用程序有两个关键引用,A.dll和B.dll

首先,我使用InstallShield LE,它将发布文件夹中的所有内容(.dll和.pdb)都包含到应用程序文件中,应用程序可以毫无问题地部署到不同的计算机上。该应用程序安装后大约6米

然后,我开始使用VS安装程序,将“主输出”包含到应用程序文件夹中。我可以看到A.dll和B.dll都包括在内。在另一台计算机上安装应用程序后,A和B也存在于安装目录中。当我运行应用程序时,它会给我“无法加载文件或程序集”B.dll“或其依赖项之一”错误。dll仅依赖于.NET framework。由于安装目录中只有.dll(没有.pdb),因此安装后应用程序仅为3M

我错过什么了吗?任何想法都会有帮助,谢谢

编辑:
A.dll和B.dll之间的区别在于,B.dll是从C++/cli程序编译的,而A.dll是从C#编译的。这是否使它们在部署中有所不同

我建议在目标计算机上使用Fusion日志查看器来确定未找到DLL的原因

有时,Fuslogvw工作起来会很痛苦,如果是这样的话,试着重新启动机器,或者看看任何关于它的博客文章


我确信,一旦您找到原因(在日志中),MSI的问题就显而易见了,但如果您不发布您的发现。

我再次尝试VS installer部署,这次应用程序在一台计算机上工作,在另一台计算机上仍然不工作。我试过Fuglogvw,在B.dll上登录时没有说任何失败,因为它现在可以在这台计算机上工作(我猜)。这很奇怪,我不明白。吉姆,我刚刚编辑了我的问题,请再检查一遍。感谢您是否收到b.dll的日志条目,表明它已成功加载到无法工作的计算机上?您应该记录所有内容,而不仅仅是错误,以确保这不仅仅是记录失败。