代码之家  ›  专栏  ›  技术社区  ›  pkaramol

运行测试时.net sdk和.net core之间不兼容

  •  0
  • pkaramol  · 技术社区  · 7 年前

    我们用一个 msbuild-sonar-scanner .net 申请。

    Dockerfile 建立 sonar-scanner 图像,在某个点上,我们执行:

      && echo "deb http://download.mono-project.com/repo/debian stretch main" | tee /etc/apt/sources.list.d/mono-official.list \
        && curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg \
        && mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg \
        && sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch main" > /etc/apt/sources.list.d/dotnetdev.list' \
        && apt-get update \
        && apt-get install -y --no-install-recommends \
        dotnet-sdk-2.1.4 \
    

    但是,测试执行会产生以下错误

    /usr/share/dotnet/sdk/2.1.4/Sdks/Microsoft.NET.Sdk/build/Microsoft.NET.TargetFrameworkInference.targets(135,5): error : The current .NET SDK does not support targeting .NET Core 2.1.  Either target .NET Core 2.0 or lower, or use a version of the .NET SDK that supports .NET Core 2.1. [/builds/enorasys-ss/essapi/src/socstreamsAPI/EssApi.csproj]
    

    如果我们使用 2.1.4 dotnet-sdk 由于这是debian回购协议的最新版本:

    $ sudo apt-cache search dotnet  | grep dotnet-sdk
    dotnet-sdk-2.0.0 - Microsoft .NET Core SDK - 2.0.0
    dotnet-sdk-2.0.2 - Microsoft .NET Core SDK - 2.0.2
    dotnet-sdk-2.0.3 - Microsoft .NET Core SDK - 2.0.3
    dotnet-sdk-2.1 - Microsoft .NET Core SDK 2.1.401
    dotnet-sdk-2.1.101 - Microsoft .NET Core SDK - 2.1.101
    dotnet-sdk-2.1.103 - Microsoft .NET Core SDK - 2.1.103
    dotnet-sdk-2.1.104 - Microsoft .NET Core SDK - 2.1.104
    dotnet-sdk-2.1.105 - Microsoft .NET Core SDK - 2.1.105
    dotnet-sdk-2.1.2 - Microsoft .NET Core SDK - 2.1.2
    dotnet-sdk-2.1.200 - Microsoft .NET Core SDK - 2.1.200
    dotnet-sdk-2.1.201 - Microsoft .NET Core SDK - 2.1.201
    dotnet-sdk-2.1.202 - Microsoft .NET Core SDK - 2.1.202
    dotnet-sdk-2.1.3 - Microsoft .NET Core SDK - 2.1.3
    dotnet-sdk-2.1.300-preview2-008533 - Microsoft .NET Core SDK 2.1.300 - Preview
    dotnet-sdk-2.1.300-rc1-008673 - Microsoft .NET Core SDK 2.1.300 - rc1
    dotnet-sdk-2.1.4 - Microsoft .NET Core SDK - 2.1.4
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   omajid    7 年前

    TLDR编号: apt-get install dotnet-sdk-2.1.401 ,不是 dotnet-sdk-2.1.4

    版本号与十进制数不同。例如,2.1.4的版本比2.1.300低得多。

    .NET核心SDK和运行时版本不完全以“明显”的方式匹配。以下是我所理解的版本:

    • .NET Core SDK2.0可以针对.NET Core Runtime 2.0或更早版本
    • .NET Core SDK 2.1.300及更高版本(包括2.1.301、2.1.400和2.1.401)可以针对.NET Core 2.1及更旧版本。

    你也可以在上面看到 https://www.microsoft.com/net/download/dotnet-core/2.1 它将向您显示所有可以以.NET Core runtime 2.1为目标的SDK下载。最早的版本是2.1.300,最新的版本是2.1.401。另一方面,您可以在这里看到只能以运行时2.0为目标的sdk: https://www.microsoft.com/net/download/dotnet-core/2.0

    推荐文章