首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法解决log4net与log4net之间的冲突

无法解决log4net与log4net之间的冲突
EN

Stack Overflow用户
提问于 2017-05-09 10:22:39
回答 1查看 1.9K关注 0票数 0

我正在使用C# Framework4.6.2和log4net 2.0.8开发一个.NET库项目。

当我试图编译该项目时,我会得到以下错误:

error CS0433:'c:\Windows\assembly\GAC_32\log4net\1.2.10.0__692fbea5521e1304\log4net.dll‘和'd:\Desarrollo\packages\log4net.2.0.8\lib\net45-full\log4net.dll’中都存在“log4net.ILog”类型

在GAC中似乎还有另一个版本的log4net。

为什么要使用GAC版本来编译呢?我有另一个使用log4net的项目,只有在这个项目中我才会得到这个错误。

log4net的引用是D:\Desarrollo\packages\log4net.2.0.8\lib\net45-full\log4net.dll。它被设置为本地副本。

我已经安装了软件包,并再次添加了同样的错误。

详细的错误是:

代码语言:javascript
复制
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(1964,5): warning MSB3243: No way to resolve conflict between "log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a" and "log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304". Choosing "log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a" arbitrarily.
1>D:\MyProject\Loggers\ActionLogHelper.cs(28,20,28,24): error CS0433: The type 'ILog' exists in both 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' and 'log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a'
1>D:\MyProject\Loggers\ActionLogHelper.cs(30,26,30,30): error CS0433: The type 'ILog' exists in both 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' and 'log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a'
1>D:\MyProject\Loggers\ExceptionLogHelper.cs(22,20,22,24): error CS0433: The type 'ILog' exists in both 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' and 'log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a'
1>D:\MyProject\Loggers\ExceptionLogHelper.cs(24,29,24,33): error CS0433: The type 'ILog' exists in both 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' and 'log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a'
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-12 08:56:02

问题是,在项目文件中有两个引用相同的dll。我用Notepad++打开了项目文件,并在下面找到了以下内容:

代码语言:javascript
复制
  <ItemGroup>
    <Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
      <HintPath>..\..\..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
      <HintPath>..\..\..\packages\Newtonsoft.Json.10.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="Ninject, Version=3.2.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL">
      <HintPath>..\..\..\packages\Ninject.3.2.2.0\lib\net45-full\Ninject.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Net.Http" />
    <Reference Include="log4net">
      <HintPath>..\..\..\packages\log4net.2.0.3\lib\net40-full\log4net.dll</HintPath>
    </Reference>

我删除了最后一个,现在它编译了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43867239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档