当 global.json 不够用时,如何将 SDK 版本设置到 .NET Core 项目中? [英] How to setup SDK version into .NET Core project when global.json is not enough?

查看:19
本文介绍了当 global.json 不够用时,如何将 SDK 版本设置到 .NET Core 项目中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从多个来源发现,在我们的 .NET Core 项目中设置 SDK 版本的官方方法是将 global.json 文件添加到项目主文件夹中.

顺便说一下,让我提醒一些有用的 cli 命令来运行到您的项目文件夹中:

dotnet --list-sdks 列出所有已安装的 SDK

dotnet new globaljson --sdk-version 2.2.105 创建合适的 global.json 文件

现在我的问题:

global.json 未应用,显示的版本与我的 global.json 不匹配

我的 csproj:

<属性组><OutputType>Exe</OutputType><TargetFramework>netcoreapp2.2</TargetFramework><LangVersion>7.3</LangVersion></PropertyGroup><项目组><PackageReference Include="Microsoft.EntityFrameworkCore.Tools";版本=2.2.3"><PrivateAssets>all</PrivateAssets><IncludeAssets>运行时;建造;本国的;内容文件;分析器</IncludeAssets></PackageReference></项目组><项目组><ProjectReference Include=....EmargementsListeners.ApplicationEmargementsListeners.Application.csproj";/><ProjectReference Include=....EmargementsListeners.EmargProvidersEmp.Source.FakeRandomisedXbusEmp.Source.FakeRandomisedXbus.csproj";/><ProjectReference Include=....EmargementsListeners.PersistenceEmargementsListeners.Persistence.csproj"/></项目组><项目组><无更新=appsettings.json"><CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory></无></项目组></项目>

我的 global.json:

{SDK":{版本":2.2.105"}}

结果:

如您所见,sdk 版本与 global.json 不匹配.它应该是 NetCore.App 2.2.3,而不是 2.2.0

将这个 global.json 放入解决方案文件夹会得到相同的结果.

dotnet --info 来自我的项目:

dotnet --info.NET Core SDK(反映任何 global.json):版本:2.2.105提交:7cecb35b92运行环境:操作系统名称:Windows操作系统版本:10.0.16299操作系统平台:WindowsRID:win10-x64基本路径:C:Program Filesdotnetsdk2.2.105主机(用于支持):版本:2.2.3提交:6b8ad509b6已安装的 .NET Core SDK:1.0.4 [C:Program Filesdotnetsdk]1.1.0 [C:Program Filesdotnetsdk]2.0.0 [C:Program Filesdotnetsdk]2.0.2 [C:Program Filesdotnetsdk]2.1.4 [C:Program Filesdotnetsdk]2.1.201 [C:Program Filesdotnetsdk]2.1.202 [C:Program Filesdotnetsdk]2.1.302 [C:Program Filesdotnetsdk]2.1.402 [C:Program Filesdotnetsdk]2.1.500 [C:Program Filesdotnetsdk]2.1.504 [C:Program Filesdotnetsdk]2.2.103 [C:Program Filesdotnetsdk]2.2.105 [C:Program Filesdotnetsdk]安装的 .NET Core 运行时:Microsoft.AspNetCore.All 2.1.2 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.All]Microsoft.AspNetCore.All 2.1.4 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.All]Microsoft.AspNetCore.All 2.1.6 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.All]Microsoft.AspNetCore.All 2.1.8 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.All]Microsoft.AspNetCore.All 2.2.1 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.All]Microsoft.AspNetCore.All 2.2.3 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.All]Microsoft.AspNetCore.App 2.1.2 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.App]Microsoft.AspNetCore.App 2.1.4 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.App]Microsoft.AspNetCore.App 2.1.6 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.App]Microsoft.AspNetCore.App 2.1.8 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.App]Microsoft.AspNetCore.App 2.2.1 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.App]Microsoft.AspNetCore.App 2.2.3 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.App]Microsoft.NETCore.App 1.0.5 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]Microsoft.NETCore.App 1.1.2 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]Microsoft.NETCore.App 2.0.0 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]Microsoft.NETCore.App 2.0.5 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]Microsoft.NETCore.App 2.0.7 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]Microsoft.NETCore.App 2.0.9 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]Microsoft.NETCore.App 2.1.2 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]Microsoft.NETCore.App 2.1.4 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]Microsoft.NETCore.App 2.1.6 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]Microsoft.NETCore.App 2.1.8 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]Microsoft.NETCore.App 2.2.1 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]Microsoft.NETCore.App 2.2.3 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]

问题:缺少设置要使用的 SDK 版本的哪一步?

解决方案

添加

2.2.3

到您的 .csproj.

看看这个问题这个了解更多信息.>

I found, from several sources, that the official way to setup SDK version into our .NET Core project is to add a global.json file into the project main folder.

By the way, let me remind some useful cli commands to run into your project folder:

dotnet --list-sdks list all installed SDKs

dotnet new globaljson --sdk-version 2.2.105 create the appropriate global.json file

Now my issue:

global.json is not applied, displayed versions does not match with my global.json

My csproj:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <LangVersion>7.3</LangVersion>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.3">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
    </PackageReference>
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="....EmargementsListeners.ApplicationEmargementsListeners.Application.csproj" />
    <ProjectReference Include="....EmargementsListeners.EmargProvidersEmp.Source.FakeRandomisedXbusEmp.Source.FakeRandomisedXbus.csproj" />
    <ProjectReference Include="....EmargementsListeners.PersistenceEmargementsListeners.Persistence.csproj" />
  </ItemGroup>

  <ItemGroup>
    <None Update="appsettings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
  </ItemGroup>

</Project>

My global.json:

{
  "sdk": {
    "version": "2.2.105"
  }
}

The result:

As you see, the sdk version does not match with global.json. It should be NetCore.App 2.2.3, not 2.2.0

Placing this global.json into the solution folder gives the same results.

dotnet --info from my project:

dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   2.2.105
 Commit:    7cecb35b92

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.16299
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:Program Filesdotnetsdk2.2.105

Host (useful for support):
  Version: 2.2.3
  Commit:  6b8ad509b6

.NET Core SDKs installed:
  1.0.4 [C:Program Filesdotnetsdk]
  1.1.0 [C:Program Filesdotnetsdk]
  2.0.0 [C:Program Filesdotnetsdk]
  2.0.2 [C:Program Filesdotnetsdk]
  2.1.4 [C:Program Filesdotnetsdk]
  2.1.201 [C:Program Filesdotnetsdk]
  2.1.202 [C:Program Filesdotnetsdk]
  2.1.302 [C:Program Filesdotnetsdk]
  2.1.402 [C:Program Filesdotnetsdk]
  2.1.500 [C:Program Filesdotnetsdk]
  2.1.504 [C:Program Filesdotnetsdk]
  2.2.103 [C:Program Filesdotnetsdk]
  2.2.105 [C:Program Filesdotnetsdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.2 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.4 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.6 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.8 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.1 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.3 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.2 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.4 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.6 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.8 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.1 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.3 [C:Program FilesdotnetsharedMicrosoft.AspNetCore.App]
  Microsoft.NETCore.App 1.0.5 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]
  Microsoft.NETCore.App 1.1.2 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]
  Microsoft.NETCore.App 2.0.0 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]
  Microsoft.NETCore.App 2.0.5 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]
  Microsoft.NETCore.App 2.0.7 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]
  Microsoft.NETCore.App 2.0.9 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]
  Microsoft.NETCore.App 2.1.2 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]
  Microsoft.NETCore.App 2.1.4 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]
  Microsoft.NETCore.App 2.1.6 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]
  Microsoft.NETCore.App 2.1.8 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]
  Microsoft.NETCore.App 2.2.1 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]
  Microsoft.NETCore.App 2.2.3 [C:Program FilesdotnetsharedMicrosoft.NETCore.App]

Question: Which step is missing to set up the SDK version to use?

解决方案

Add

<RuntimeFrameworkVersion>2.2.3</RuntimeFrameworkVersion>

to your .csproj.

Take a look at this question and this one for more information.

这篇关于当 global.json 不够用时,如何将 SDK 版本设置到 .NET Core 项目中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆