用户无法安装 ClickOnce 应用程序。错误是:“文件 NLog.dll 不是有效的可移植可执行 (PE) 文件。” 它在我的机器上运行良好,但我安装了 nLog。这对于客户端机器是不可能的。任何想法如何让它发挥作用?
5 回答
如果NLog.config
使用ClickOnce
.
您需要在使用中选择NLog.config
文件并将其设置如下:Project
Solution Explorer
Properties
- 构建动作:内容
- 复制到输出目录:始终复制
现在,当您使用文件进行部署时,也ClickOnce
应该复制过来!:)
我将所有 NLog 配置数据放入 App.config 文件而不是 NLog.config 文件中,并且在使用 ClickOnce 部署后它也对我有用。没有错误,日志记录正在部署的应用程序上工作。
检查您的构建选项并确保 NLog.dll 包含在“应用程序文件”中,以便它位于“下载组”/必需中。
If your NLog assemblies are deployed to the GAC then you can't (simply) include that in a ClickOnce setup. Try to deploy them as local DLLs. If that is not possible you will need a separate Setup (or MSI) to deploy NLog.
将 dll 添加到您的项目并设置 BuildAction = None,并将“复制到输出目录”设置为“不复制”。
删除项目中对 NLog 的引用。重新添加引用并将其指向您刚刚添加到项目中的 dll。在引用的属性上,将“复制本地”设置为“真”。
现在,当您运行应用程序时,它将指向本地版本,而当您部署应用程序时,它将部署本地版本并指向它。
这适用于许多第 3 方 DLL,但不是全部。最好的办法就是尝试一下。