2014-09-27 103 views
2

我有一个winform应用程序,我使用windows安装程序project.Now在安装程序的帮助下构建,我已成功将应用程序安装到我的系统中。在检查安装文件夹时,我可以注意到所有外部.dll文件都与应用程序一起存在.exe。现在,我从用户程序菜单启动应用程序,并从应用程序屏幕点击按钮,出现错误。使用应用程序时无法加载文件或程序集错误用户程序菜单

System.IO.FileNotFoundException: Could not load file or assembly 'EPPlus, Version=3.1.3.0, Culture=neutral, PublicKeyToken=ea159fdaa78159a1' or one of its dependencies. The system cannot find the file specified. 

虽然该文件存在于文件夹中。也当我试图从安装文件夹中使用应用程序时,我能够访问所有功能,无任何错误。

这是为什么happening.Please帮我解决这个..

回答

0

要调试这个问题,打开该项目Properties - >开Debug - >设置Working Directory为 “开始菜单” 文件夹(这是C:\ProgramData\Microsoft\Windows\Start Menu\Programs\YourPragram)。然后开始调试重新创建绑定错误。

它很可能是您的应用程序预计CurrentDirectory设置为应用程序文件夹。如果是这样,你应该在代码中明确地设置它。在Main方法,添加此

Environment.CurrentDirectory = System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath); 

这一行,即使应用程序从Start Menu启动,CurrentDirectory是应用程序文件夹,而不是开始菜单。

您还可以使用Fuslogvw.exe(程序集绑定日志查看器)来诊断绑定错误。

  1. 启动Visual Studio命令提示符(以Administrator身份)。
  2. 运行命令“Fuslogvw.exe”
  3. 点击“设置”,并在日志设置对话框中选择“log bind error to disk”,并勾选“启用自定义日志路径”,设置路径如“C:\ “
  4. 从开始菜单运行您的程序,发生异常后,转到C:\ Default以获取EPPlus.dll的绑定日志。

诊断结果如下所示,您可以看到尝试的路径。

LOG: 尝试新的URL文件下载:/// C:/Users/kennyzx/Desktop/cloudforge/svn/package/innosetup/Files/FolderBrowserDialogEx.DLL。 日志:试图下载新的URL文件:/// C:/Users/kennyzx/Desktop/cloudforge/svn/package/innosetup/Files/FolderBrowserDialogEx/FolderBrowserDialogEx.DLL。

LOG: All probing URLs attempted and failed. 
0

在快捷方式,你可能要设置“启动”目录,以便Windows可以设置应用程序的当前目录。

0

以我为例,我试图使用EPPlus库在SSIS包和我得到同样的错误。 我的解决办法是把这个文件夹中的文件:C:/ Program Files文件(86)/的Microsoft SQL Server/100/DTS/BINN/

感谢

相关问题