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

时间:2014-12-19 11:22:55

标签: c# .net winforms

我设计了一个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

2 个答案:

答案 0 :(得分:0)

也许安装不会复制所有引用。如果为所需的所有引用设置copy local = true,您是否已检入顶部引用(winform项目),甚至可以将它们安装到GAC中。

enter image description here

答案 1 :(得分:0)

对于您收到错误的每个dll,将Copy Local属性更改为true

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

<强>更新

检查你的项目是否针对.net 4.5,也许dll正在瞄准.net 4.0

更新2

转到解决方案资源管理器 - &gt;属性 - &gt;构建标签

将平台目标设置为“任何CPU”,以确保您的应用程序可以在32位和64位计算机上运行。