我正在使用 Visual Studio 2017 构建一个大型 C# 项目(解决方案中有 200 多个项目)。在编译其中一个项目时,我遇到了很多错误,如下所示:
error CS0012: The type 'BufferingAppenderSkeleton' is defined in an assembly that is not referenced. You must add a reference to assembly 'log4net, Version=1.2.11.0, Culture=neutral, PublicKeyToken=1b44e1d426115821'.
然而,有问题的项目确实引用了 log4net 1.2.11。唯一可疑的是在log4net的包路径中找到的net40-full :“ C:\XXXX\Src\packages\log4net.1.2.11\lib\net40-full\log4net.dll ”
在项目的 package.config 中,它包含以下行:
<package id="log4net" version="1.2.11" targetFramework="net461" />
在其 app.config 中,它包含以下行:
<dependentAssembly> <assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-1.2.11.0" newVersion="1.2.11.0"/> </dependentAssembly>
我想知道是不是 .net 版本(4.0 与 4.61)的不匹配导致了编译错误?
C# 不是我的主要专业领域,但我的理解是 nuget 会查看这些配置文件以下载所需的包,在本例中为 log4net。那它怎么下载的是4.0版本而不是4.6.1的呢?
料青山看我应如是
相关分类