【问题标题】:Console App with Log4Net compiles in Debug but not in Release mode带有 Log4Net 的控制台应用程序在调试模式下编译,但不是在发布模式下
【发布时间】:2015-02-19 10:46:07
【问题描述】:

我有一个简单的 C#/4.0 控制台应用程序,它在 VS2010 中引用了 Log4Net 1.2.13.0。

在调试模式下,应用程序在我的机器上编译并运行良好。但是,一旦我更改为“发布”,我就会收到错误

“无法加载文件或程序集 'file:///C:\Users\mike\Documents\Visual Studio 2010\Projects\xxxx\yyyyy\log4net.dll' 或其依赖项之一。不支持操作。 "

在 AssemblyInfo.cs 中我添加了以下行:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

根据配置mgr,但Debug和Release设置为使用x86平台。这也发生在我笔记本电脑上的另一个 C# 服务应用程序中,但我认为如果坚持让它先在这里工作会更容易。

app.config 文件包含以下部分:

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

提前致谢 迈克

【问题讨论】:

  • 您是如何将 log4net 添加到您的项目中的?使用 NuGet packetmanager 安装 Log4Net 可能值得一试
  • 这可能与它有关吗? stackoverflow.com/questions/21753979/…
  • 我把 app.config 改成了这个
    然后它起作用了。非常令人沮丧的是,它并不是很明显。谢谢大家
  • @mikcatta,如果这是您的解决方案,请添加并接受您的答案。

标签: c# .net visual-studio-2010 log4net


【解决方案1】:

更改 app.config 中的类型定义以指定完全限定的程序集名称为我解决了这个问题:

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.13.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a" /> 

【讨论】:

  • 如果您要将自己的答案标记为答案,至少要让您的答案的用处最小。复制您上面的评论可能会帮助其他人试图找到类似的答案。
  • @JackHughes:他忘记将他的 XML sn-p 标记为代码块,所以它不可见。现已修复。
【解决方案2】:

我也有同样的问题。我刚刚检查了 log4net.dll 属性中的 Unblock 复选框,它为我解决了这个问题。

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-31
  • 1970-01-01
  • 1970-01-01
  • 2016-09-01
  • 1970-01-01
相关资源
最近更新 更多