用户无法安装ClickOnce应用程序。错误是:“文件NLog.dll不是有效的可移植可执行文件(PE)文件。”它在我的机器上工作正常,但我安装了nLog。这对客户端机器来说是不可能的。任何想法如何让这个工作?
答案 0 :(得分:8)
如果使用NLog.config
安装ClickOnce
,则NLog.config
无法复制到您的程序中,我找到了此问题的答案。
您需要使用Project
在Solution Explorer
中选择Properties
文件,并按如下所示设置其ClickOnce
:
现在,当您使用{{1}}进行部署时,也应该复制文件! :)
答案 1 :(得分:7)
我将所有NLog配置数据放入App.config文件而不是NLog.config文件中,并且在使用ClickOnce部署之后它也适用于我。没有错误,日志记录正在部署的应用程序上运行。
答案 2 :(得分:3)
检查您的构建选项并确保NLog.dll包含在“应用程序文件”中,以便它位于“下载组”/所需。
答案 3 :(得分:2)
如果您的NLog程序集部署到GAC,那么您不能(简单地)将其包含在ClickOnce设置中。尝试将它们部署为本地DLL。如果不可能,您将需要单独的安装程序(或MSI)来部署NLog。
答案 4 :(得分:0)
将dll添加到项目中并设置BuildAction = None,并将“复制到输出目录”设置为“不复制”。
删除项目中对NLog的引用。重新添加引用并将其指向刚刚添加到项目中的dll。在引用的属性上,将“Copy local”设置为“true”。
现在,当您运行应用程序时,它将指向本地版本,当您部署应用程序时,它将部署本地版本并指向它。
这适用于许多第三方DLL,但不是全部。最好的办法就是尝试一下。