版本和 publickeytoken 相同,但显示“警告 MSB3243:无法解决 System.IO.Compression、版本 = 4.1.3.0 之间的冲突”

2023-12-19

穆csproj:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net461;netstandard2.0;net5.0</TargetFrameworks>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System.IO.Compression" />
  </ItemGroup>
</Project>

它有三个框架.net4.6.1和netstandard2和.net 5

并且系统显示以下消息

 warning MSB3243: No way to resolve conflict between "System.IO.Compression, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" and "System.IO.Compression". Choosing "System.IO.Compression, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" arbitrarily.

我对此感到困惑,他们的版本 publickeytoken 是相同的。

完整代码

Severity    Code    Description Project File    Line    Suppression State
Warning MSB3245 Could not resolve this reference. Could not locate the assembly "System.IO.Compression". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.    MiniExcelLibs   C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets   2182    
Warning MSB3245 Could not resolve this reference. Could not locate the assembly "System.IO.Compression". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.    MiniExcelLibs   C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets   2182    
Warning MSB3243 No way to resolve conflict between "System.IO.Compression, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" and "System.IO.Compression". Choosing "System.IO.Compression, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" arbitrarily. MiniExcelLibs   C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets   2182    
Warning MSB3243 No way to resolve conflict between "System.IO.Compression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" and "System.IO.Compression". Choosing "System.IO.Compression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" arbitrarily. MiniExcelLibs   C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets   2182    


我该如何处理警告或设置配置以忽略它,谢谢。


update :

我尝试过为每个框架设置版本,但不起作用

<Project Sdk="Microsoft.NET.Sdk">
  <ItemGroup Condition=" '$(TargetFramework)' == 'net461'">
    <Reference Include="System.IO.Compression" Version="4.1.3.0"  />
  </ItemGroup>
  <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0'">
    <Reference Include="System.IO.Compression" Version="4.1.3.0"  />
  </ItemGroup>
  <ItemGroup Condition=" '$(TargetFramework)' == 'net5.0'">
    <Reference Include="System.IO.Compression" Version="5.0.0.0"  />
  </ItemGroup>
</Project>

https://github.com/dotnet/sdk/issues/16407 https://github.com/dotnet/sdk/issues/16407

marcpopMSFT https://github.com/marcpopMSFT says

您可以尝试删除对 System.IO.Compression 的引用吗?该文件是 .net Core 运行时的一部分,并且所有运行时程序集都在您的项目中隐式引用,以便新开发人员更轻松地使用 .NET,甚至无需引用,因此您不需要该引用。看起来它正在找到运行时中的版本和您直接引用的版本,并向您发出警告,表明您实际上引用了它两次。

我如下更新csproj,它可以解决我的问题

  <ItemGroup Condition=" '$(TargetFramework)' == 'net461'">
    <Reference Include="System.IO.Compression"  />
  </ItemGroup>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

版本和 publickeytoken 相同,但显示“警告 MSB3243:无法解决 System.IO.Compression、版本 = 4.1.3.0 之间的冲突” 的相关文章

随机推荐