使用ClickOnce应用程序部署NLog

时间:2009-08-21 20:20:56

标签: .net clickonce nlog

用户无法安装ClickOnce应用程序。错误是:“文件NLog.dll不是有效的可移植可执行文件(PE)文件。”它在我的机器上工作正常,但我安装了nLog。这对客户端机器来说是不可能的。任何想法如何让这个工作?

5 个答案:

答案 0 :(得分:8)

如果使用NLog.config安装ClickOnce,则NLog.config无法复制到您的程序中,我找到了此问题的答案。

您需要使用ProjectSolution 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,但不是全部。最好的办法就是尝试一下。