C# 无法在安装winform应用程序时加载文件或程序集

C# 无法在安装winform应用程序时加载文件或程序集,c#,.net,winforms,C#,.net,Winforms,我设计了一个winform应用程序,并在Visual Studio 2010的帮助下对该应用程序进行了设置。在该应用程序中,我使用了三个外部.dll,即Mysql,Itextsharp和Epplus。在visual studio中工作时,一切都很好,但当我安装安装程序并尝试从那里访问应用程序时,我遇到了一个非常奇怪的错误,即无法加载其他两个DLL(即Itextsharp和Epplus)的文件或程序集,而mysql没有错误。我还做了一个交叉测试检查安装文件夹,我可以在那里看到我的应用程序中使用的所

我设计了一个winform应用程序,并在Visual Studio 2010的帮助下对该应用程序进行了设置。在该应用程序中,我使用了三个外部.dll,即Mysql,Itextsharp和Epplus。在visual studio中工作时,一切都很好,但当我安装安装程序并尝试从那里访问应用程序时,我遇到了一个非常奇怪的错误,即
无法加载其他两个DLL(即
Itextsharp和Epplus)的文件或程序集,而mysql没有错误。我还做了一个交叉测试检查安装文件夹,我可以在那里看到我的应用程序中使用的所有DLL

实际上,我在VisualStudio命令提示符下进行了交叉检查,发现应用程序试图在错误的位置搜索这些DLL。为什么应用程序在错误的位置搜索它?为什么它在正确的文件夹和位置得到了
Mysql.dll
,为什么它在错误的位置和文件夹中搜索另外两个

请帮我找出这个奇怪错误的可能原因和解决办法。。 谢谢

更新

LOG: Appbase = file:///C:/Users/Vikas/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/ECV/

LOG: Using application configuration file: C:\Users\Vikas\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\ECV\ECVNEW.exe.Config

也许安装没有复制所有的参考资料。如果您为所有需要的引用设置了copy local=true,或者您甚至可以将它们安装到GAC中,那么您是否签入了顶级引用(winform项目)


对于每个要获取错误的dll,请将
本地
属性更改为

如果在生成项目时不执行此操作,则这些dll不会复制到bin文件夹,并且如果使用该程序的PC没有这些dll,则程序将失败

更新

检查您的项目是否以.net 4.5为目标,或者DLL以.net 4.0为目标

更新2

转到解决方案资源管理器-->属性-->生成选项卡


将平台目标设置为“任意CPU”,以确保您的应用程序在32位和64位计算机上都能工作。

Copy Local在我的应用程序中是正确的,而且我对安装文件夹进行了交叉检查,我可以看到我的应用程序中使用的所有DLL都可以在那里使用……目标是.net 4.0 Only,这一行作为主目录中的第一行方法
Environment.CurrentDirectory=System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath)
已经尝试了这个方法,因为我从
中得到了这个解决方案,所以
答案,但是在我的应用程序中,将这些DDL放在exe fileCopy Local的同一级别并没有运气,而且我对安装文件夹进行了交叉检查,我可以看到我的应用程序中使用的所有DLL都在那里可用。唯一的区别是
Mysql.dll
存在于
C:/Programfiles/
中,而另外两个则存在于
桌面中
但是在检查安装文件夹中的这两个dll时,我可以看到有必要…对同一arquicteure x86或64的目标安装有任何建议吗?或不同的dll版本?应用程序安装文件夹位于
C:\Program Files(x86)\Microsoft\EV
是否尝试删除所有dll并用调试文件夹替换它们。否,我没有尝试过这个…我有一个问题,为什么
Mysql.dll
可以工作,而这两个都不能在同一个安装文件夹中工作appication@HansPassan我以前也在其他项目中使用过这两个DLL,它们在那里工作得很好。事实上,我在VisualStudio命令提示符下进行了交叉检查,得到了知道应用程序试图在错误的位置搜索这些dll。为什么应用程序在错误的位置搜索它?为什么它能够得到
Mysql.dll
如果你不把这些信息放在你的问题中,你当然不能得到一个好的答案。告诉我们你所知道的一切。@HansPassant我用这些更新了我的帖子,这就是我所知道的,我已经试过了,它应该查看的文件路径是什么,它实际查看的路径是什么?另外,你确定它是从你认为的地方加载Mysql dll的吗?它可能在GAC中吗?@Nanhentin请参阅我的帖子我更新了应用程序搜索.dll的路径这是我的应用程序尝试搜索.dll的地方