首先,我收到此构建错误,但仅在某些机器上:
错误 CS1705 程序集“***”与标识
'***,版本=1.0.0.0,文化=中立,
PublicKeyToken=null'使用'System.Net.Http,版本=4.1.1.1,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 具有较高的
版本比引用的程序集“System.Net.Http”具有身份
'System.Net.Http,版本=4.1.1.0,文化=中性,
PublicKeyToken=b03f5f7f11d50a3a' *** C:\***\CSC 1 活动
我猜想,这与SDK版本有某种联系。从我在“属性”窗口中看到的,在一些项目中我有Microsoft.NETCore.App 1.1.1
而其他人则有Microsoft.NETCore.App 1.1.2
.
包更新后,构建成功(但为什么我被迫更新所有包?)。
但 sdk 版本仍然不同。现在我正在尝试使用 Visual Studio 的整合功能:
在工具提示中说:
由于附加限制,以下版本不可用
项目或packages.config
如何将所有项目升级到较新的SDK?如何确保将来不会破坏其他机器上的构建?
如果您之前手动升级过,Microsoft.NETCore.App
某些项目的包中,它们将包含类似的元素<PackageReference Update="Microsoft.NETCore.App" Version="1.1.1" />
.
原因是,Microsoft.NET.Sdk
SDK 创建隐式包引用。
由于包是隐式引用的,NuGet 一开始就不应该这样做,并且当前的 VS 更新不再允许更新隐式引用的包。
您可以在这里做两件事:
- 移除所有
PackageReference
更改/设置版本的元素Microsoft.NET.Sdk
。然后,这将让 SDK 版本(包含在 MSBuild / dotnet cli 中)选择版本。
-
1 + 在一个<PropertyGroup>
您的 csproj 文件,设置
<RuntimeFrameworkVersion>1.1.2</RuntimeFrameworkVersion>
这将设置 SDK 的隐式引用将使用的版本。
-
1 + 在一个<PropertyGroup>
您的 csproj 文件,设置
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
然后安装需要的版本Microsoft.NETCore.App
手动
我建议使用选项 1,因为它不再要求您修改 csproj 文件(例如,在添加新项目、重组解决方案等时)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)