使用应用程序用户程序菜单时无法加载文件或程序集错误

问题描述 投票:0回答:4

我有一个 winform 应用程序,我使用 Windows 安装项目将其构建为安装程序。现在,在安装程序的帮助下,我已成功地将应用程序安装到我的系统中。在检查安装文件夹时,我可以注意到所有外部 .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.

虽然该文件存在于文件夹中。此外,当我尝试使用安装文件夹中的应用程序时,我可以访问所有功能而不会出现任何错误。

为什么会发生这种情况。请帮我解决这个问题..

c# winforms visual-studio-2010 installation setup-project
4个回答
1
投票

就我而言,我尝试在 SSIS 包中使用 EPPlus 库,但遇到了同样的错误。 我的解决方案是将文件放在以下文件夹中:c:/Program Files (x86)/Microsoft SQL Server/100/DTS/binn/

谢谢


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 命令提示符(以管理员身份)。
  2. 运行命令“Fuslogvw.exe”
  3. 点击“设置”,在日志设置对话框中,选择“将错误日志绑定到磁盘”,并勾选“启用自定义日志路径”,设置路径如“C:\”
  4. 从开始菜单运行程序,出现异常后,进入C:\Default获取EPPlus.dll的绑定日志。

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

日志: 尝试下载新的 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
投票

我使用了 EPP Plus 软件包的替代版本(据称可以解决性能问题的分支),并且在官方软件包失败的地方起作用。替代(非官方)软件包是 EPPlus.Performance。

© www.soinside.com 2019 - 2024. All rights reserved.