我正在尝试部署的C#应用程序有两个关键引用,A.dll和B.dll。
首先,我使用InstallShield LE将release文件夹中的所有内容(.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#编译的。这会使它们在部署方面有所不同吗?
答案 0 :(得分:0)
我建议在目标计算机上使用Fusion日志查看器来确定找不到DLL的原因。
http://msdn.microsoft.com/en-us/library/e74a18c4.aspx
有时Fuslogvw可能很难开始工作,如果是这样,请尝试重新启动计算机,或者查看有关它的任何博客文章
https://www.google.ca/search?q=fuslogvw.exe&oq=fuslog
我敢肯定,一旦你找到原因(在日志中),很明显MSI会出现什么问题,但如果没有发布你的发现。