使用Log4Net的控制台应用在Debug模式下可以编译,但在Release模式下无法编译

6
我有一个简单的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)],根据配置管理器,但Debug和Release都设置为使用平台x86。这也发生在我的笔记本电脑上的另一个C#服务应用程序中,但我认为如果先在这里使其工作会更容易。app.config文件包含以下部分:
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

提前感谢,Mike


1
你是如何将log4net添加到你的项目中的?使用NuGet包管理器安装Log4Net可能值得一试。 - Marco
2
这可能与此有关吗?https://dev59.com/7WEi5IYBdhLWcg3wBYAt - RenniePet
我将app.config更改为以下内容:<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.13.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a" />,然后它就可以工作了。非常令人沮丧的是这并不是显而易见的。谢谢大家。 - mikcatta
@mikcatta,如果这对您来说是解决方案,请添加并接受您的答案。 - matth
2个回答

1
将app.config中的类型定义更改为指定完全限定程序集名称对我解决了问题:
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.13.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a" /> 

如果你要将自己的答案标记为答案,至少让你的答案有一点用处。复制你上面的评论可能会帮助其他试图找到类似答案的人。 - Jack Hughes
1
@JackHughes:他忘记将XML片段标记为代码块,因此它不可见。现在已经修复。 - Mike Goodwin

0

我也遇到了同样的问题。我只需在log4net.dll属性中勾选解除阻止复选框,问题就得到了解决。


1
你的回答可以通过提供更多支持信息来改善。请进行[编辑]以添加进一步细节,例如引用或文档,以便他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接