gpt4 book ai didi

c# - 为什么我不能在 Visual Studio 中合并项目 sdk 版本?

转载 作者:太空狗 更新时间:2023-10-29 22:15:34 25 4
gpt4 key购买 nike

首先,我遇到了这个构建错误,但只在某些机器上:

Error CS1705 Assembly '***' with identity '***, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'System.Net.Http, Version=4.1.1.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has a higher version than referenced assembly 'System.Net.Http' with identity 'System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' *** C:\***\CSC 1 Active

我想,它与 SDK 版本有某种联系。从我在“属性”窗口中看到的内容来看,在某些项目上我有 Microsoft.NETCore.App 1.1.1 而其他项目有 Microsoft.NETCore.App 1.1.2

包更新后,构建成功(但为什么我必须更新所有包?)。

但是,sdk 版本仍然不同。现在我正在尝试使用 Visual Studio 的这个整合功能:

enter image description here

在工具提示中说:

Following versions are unavaible due to additional constraints in the project or packages.config

如何将所有项目升级到更新的SDK?以及如何确保将来不会破坏其他机器上的构建?

最佳答案

如果您之前手动升级过,一个Microsoft.NETCore.App在某些项目上打包,它们将包含类似 <PackageReference Update="Microsoft.NETCore.App" Version="1.1.1" /> 的元素.

原因是 Microsoft.NET.Sdk SDK 创建隐式包引用。

由于包被隐式引用,NuGet 一开始就不应该这样做,当前的 VS 更新不再允许更新隐式引用的包。

你可以在这里做两件事:

  1. 删除所有PackageReference更改/设置 Microsoft.NET.Sdk 版本的元素.这将使 SDK 版本(包含在 MSBuild/dotnet cli 中)选择版本。
  2. 1 + 在 <PropertyGroup>你的 csproj 文件,设置

     <RuntimeFrameworkVersion>1.1.2</RuntimeFrameworkVersion>

    这将设置 SDK 的隐式引用将使用的版本。

  3. 1 + 在 <PropertyGroup>你的 csproj 文件,设置

    <DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>

    然后安装所需版本的Microsoft.NETCore.App手动

我建议使用选项 1,因为它不再需要您修改 csproj 文件(例如,在添加新项目、重组解决方案等时)。

关于c# - 为什么我不能在 Visual Studio 中合并项目 sdk 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44007900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com