【问题标题】:ASP.NET core project build error in gitlab CI : error NETSDK1045: The current .NET SDK does not support targeting .NET Core 5.0gitlab CI 中的 ASP.NET 核心项目构建错误:错误 NETSDK1045:当前的 .NET SDK 不支持针对 .NET Core 5.0
【发布时间】:2020-12-16 14:39:09
【问题描述】:

当我使用这个 CI 配置文件时,从 gitlab 管道获取构建错误:

/usr/share/dotnet/sdk/2.1.809/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets(137,5): 错误 NETSDK1045:当前的 .NET SDK 不支持面向 .NET 核心 5.0。以 .NET Core 2.1 或更低版本为目标,或使用 支持 .NET Core 5.0 的 .NET SDK。

image: microsoft/dotnet:latest


variables:
    # 1) Name of directory where restore and build objects are stored.
    OBJECTS_DIRECTORY: 'obj'
    # 2) Name of directory used for keeping restored dependencies.
    NUGET_PACKAGES_DIRECTORY: '.nuget'
    # 3) A relative path to the source code from project repository root.

    SOURCE_CODE_PATH: '*/*/'

# ### Define stage list

stages:
    - build
    - test

# ### Define global cache rule
cache:
    # Per-stage and per-branch caching.
    key: "$CI_JOB_STAGE-$CI_COMMIT_REF_SLUG"
    paths:
    # Specify three paths that should be cached:
    #
    # 1) Main JSON file holding information about package dependency tree, packages versions,
    # frameworks etc. It also holds information where to the dependencies were restored.
    - '$SOURCE_CODE_PATH$OBJECTS_DIRECTORY/project.assets.json'
    # 2) Other NuGet and MSBuild related files. Also needed.
    - '$SOURCE_CODE_PATH$OBJECTS_DIRECTORY/*.csproj.nuget.*'
    # 3) Path to the directory where restored dependencies are kept.
    - '$NUGET_PACKAGES_DIRECTORY'
    
    # 'pull-push' policy is the default cache policy, you do not have to specify it explicitly.
    policy: pull-push

# ### Restore project dependencies
before_script:
    - 'dotnet restore --packages $NUGET_PACKAGES_DIRECTORY'

build:
    stage: build

    script:
    - 'dotnet build --no-restore'

tests:
    stage: test
    # ### Run the tests
    
    script:
    - 'dotnet test --no-restore'

【问题讨论】:

    标签: c# asp.net-core .net-core gitlab gitlab-ci


    【解决方案1】:

    我们应该准确地写出dotnet版本:

    使用

    image: mcr.microsoft.com/dotnet/core/sdk:5.0
    

    而不是

    image: microsoft/dotnet:latest
    

    【讨论】:

      【解决方案2】:

      听起来您的 CI/CD 机器需要安装最新版本的 .NET Core SDK。或者将您的项目与构建机器上安装的 .NET Core 版本挂钩,根据错误,它似乎是 v2.1。

      【讨论】:

        猜你喜欢
        • 2021-12-12
        • 2022-08-05
        • 2020-01-24
        • 2019-03-11
        • 2021-12-30
        • 1970-01-01
        • 2018-11-20
        • 1970-01-01
        • 2019-02-10
        相关资源
        最近更新 更多