ast*_*tef 5 .net c# .net-core visual-studio-2017
首先,我遇到了这个构建错误,但只在某些机器上:
错误CS1705汇编'***',标识'***,版本= 1.0.0.0,Culture =中性,PublicKeyToken = null'使用'System.Net.Http,Version = 4.1.1.1,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a '它的版本高于引用的程序集'System.Net.Http',标识为'System.Net.Http,Version = 4.1.1.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'***C:\***\CSC 1有效
我想,它与SDK版本有某种联系.从我在"属性"窗口中可以看到的,在我拥有的一些项目上,Microsoft.NETCore.App 1.1.1而在其他项目中Microsoft.NETCore.App 1.1.2.
包更新后,构建成功(但为什么我被迫更新所有包?).
但是,sdk版本仍然不同.现在我正在尝试使用Visual Studio的这个整合功能:
在工具提示中说:
由于项目或packages.config中的其他约束,以下版本是不可用的
如何将所有项目升级到更新的SDK?如何确保未来不打破其他机器的构建?
Mar*_*ich 12
如果您之前手动升级了Microsoft.NETCore.App一些项目的包,它们将包含一个类似的元素<PackageReference Update="Microsoft.NETCore.App" Version="1.1.1" />.
原因是Microsoft.NET.SdkSDK创建了一个隐式包引用.
由于隐式引用了包,因此NuGet不应该首先执行此操作,并且当前的VS更新不再允许更新隐式引用的包.
你可以在这做两件事:
PackageReference更改/设置版本的元素Microsoft.NET.Sdk.然后,这将使SDK版本(包含在MSBuild/dotnet cli中)选择版本.1 +在<PropertyGroup>你的csproj文件中,设置
<RuntimeFrameworkVersion>1.1.2</RuntimeFrameworkVersion>
Run Code Online (Sandbox Code Playgroud)
这将设置SDK的隐式引用将使用的版本.
1 +在<PropertyGroup>你的csproj文件中,设置
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
Run Code Online (Sandbox Code Playgroud)
然后Microsoft.NETCore.App手动安装所需的版本
我建议使用选项1,因为它不再需要您修改csproj文件(例如,在添加新项目,重组解决方案等时).
| 归档时间: |
|
| 查看次数: |
1732 次 |
| 最近记录: |