0

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

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

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

我在这里错过了什么吗?任何想法都会有所帮助,谢谢。

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

4

1 回答 1

0

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

http://msdn.microsoft.com/en-us/library/e74a18c4.aspx

有时 Fuslogvw 开始工作可能会很痛苦,如果是这样,请尝试重新启动机器,或查看任何有关它的博客文章

https://www.google.ca/search?q=fuslogvw.exe&oq=fuslog

我敢肯定,一旦您找到原因(在日志中),MSI 的问题就会很明显,但如果没有发布您的发现。

于 2013-05-23T19:35:44.997 回答