我设计了一个winform应用程序,在Visual Studio 2010的帮助下,我对应用程序进行了设置。在应用程序中,我使用了三个外部.dll,即Mysql,Itextsharp和Epplus。在视觉上工作时,一切都很好工作室,但是一旦我安装了设置并试图从那里访问应用程序,我得到一个非常奇怪的错误,即Could not load file or assembly
其他两个dll即Itextsharp and Epplus
,而mysql没有错误。我也是对安装文件夹进行了交叉检查,我可以看到我的应用程序中使用的所有dll都可以在那里使用..
实际上我从visual studio命令提示符交叉检查并且知道应用程序试图在错误的地方搜索这些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
答案 0 :(得分:0)
也许安装不会复制所有引用。如果为所需的所有引用设置copy local = true,您是否已检入顶部引用(winform项目),甚至可以将它们安装到GAC中。
答案 1 :(得分:0)
对于您收到错误的每个dll,将Copy Local
属性更改为true
。
如果在构建项目时没有执行此操作,则这些dll不会复制到bin文件夹中,如果使用该程序的PC没有这些dll,程序将失败
<强>更新强>
检查你的项目是否针对.net 4.5,也许dll正在瞄准.net 4.0
更新2
转到解决方案资源管理器 - &gt;属性 - &gt;构建标签
将平台目标设置为“任何CPU”,以确保您的应用程序可以在32位和64位计算机上运行。