【问题标题】:Jenkins not compiling with .NET Core 3.1 version using MSBuildJenkins 没有使用 MSBuild 编译 .NET Core 3.1 版本
【发布时间】:2020-08-07 04:14:42
【问题描述】:

我有一个 Jenkins 已在本地安装的环境,并且该解决方案中有 4 个 Visual Studio 项目,具有所有 .NET Core 3.1 版本。我安装了 Visual Studio 2019 的构建工具和 Jenkins 的 MSBuild 插件。 我没有为 Visual Studio 2019 安装完整的 IDE。

我还运行了安装 jenkins 的“dotnet --info”,输出如下:

执行此步骤后,我也无法编译项目。请看下面的错误:

我也尝试设置环境变量,但它没有帮助使用此页面中的指令 (https://github.com/dotnet/msbuild/issues/2532)。 谁能帮我指出我做错了什么。

编辑

我重新启动了服务器,现在我收到了这个错误:

【问题讨论】:

  • 你是如何调用构建的?
  • 您好,谢谢您的回复。我已将 Jenkins 的全局配置设置为此 MSBuild 路径“C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin”,并使用它来手动构建 Visual Studio 解决方案。
  • 您是否尝试直接调用dotnet build 命令?
  • 我尝试打开一个新的 CMD 窗口,其中安装了 Jenkins 并且它正在工作,但是当将 MSBuild 与 Jenkins 一起使用时它不起作用。我现在也重新启动了我的服务器,我看到了一个新错误。它现在可以下载 Nuget 包但抛出错误 ---“Microsoft.NETCore.App.Runtime.win-x64 的运行时包未下载。尝试使用 RuntimeIdentifier 'win-x64' 运行 NuGet 恢复”
  • 你找到解决这个问题的方法了吗?

标签: jenkins .net-core msbuild jenkins-plugins


【解决方案1】:

我只是发布在那段时间对我有用的解决方案。这是很久以前的事了,因此粘贴了我保存在笔记中的图像以供将来参考。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题:

    "未下载 Microsoft.NETCore.App.Runtime.win-x64 的运行时包。尝试使用 RuntimeIdentifier 'win-x64' 运行 NuGet 还原

    在 GitHub 操作的 Windows 自托管运行器中使用 MSBuild 构建 .NET Core 3.1 应用程序(具有多个 csproj 文件的 sln)时(我认为 CI 工具与问题无关,因为我可以重现它在我自己的 Windows 机器上)。

    我设法解决的方法是将以下 RuntimeIdentifiers 部分添加到 csproj 文件中:

      <PropertyGroup>
        <TargetFramework>netcoreapp3.1</TargetFramework>
        <RuntimeIdentifiers>win-x64</RuntimeIdentifiers>
      </PropertyGroup>

    此外,在使用 MSBuild 构建项目之前(我必须使用 MSBuild,因为我正在构建一个 MSI 并且无法使用 dotnet 来构建),我会使用 -r 开关和 win-x64 作为值进行 dotnet restore :

    dotnet restore -r win-x64
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-17
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      相关资源
      最近更新 更多