首页 > 解决方案 > 一种从 Mac 上的 .net 框架版本指定 msbuild 的方法?

问题描述

尝试在 Mac 上的 .Net Core 3 项目上使用 Psake 创建构建脚本。

使用特定框架调用 Psake,

Invoke-psake -buildFile default.ps1 `
             -taskList Test `
             -framework netcoreapp3.0 `
             -properties @{ 
                 "buildConfiguration" = "Release"
                 "buildPlatform" = "Any CPU"} `
             -parameters @{ 
                 "solutionFile" = "PaymentGateway.sln"}

并使用 msbuild 作为解决方案。

Exec {
        msbuild $SolutionFile "/p:Configuration=$buildConfiguration;Platform=$buildPlatform;OutDir=$temporaryOutputDirectory"
    }

它不编译。它似乎使用'mono msbuild',查看错误消息。

“/Users/jakeryu/RiderProjects/PaymentGateway/PaymentGateway.sln”(默认目标)(1)->“/Users/jakeryu/RiderProjects/PaymentGateway/Bank/Bank.csproj”(默认目标)(8)-> /Library /Frameworks/Mono.framework/Versions/5.18.1/lib/mono/msbuild/15.0/bin/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets(137,5):错误NETSDK1045:当前的 .NET SDK 不支持面向 .NET Core 3.0。以 .NET Core 2.1 或更低版本为目标,或者使用支持 .NET Core 3.0 的 .NET SDK 版本。[/Users/jakeryu/RiderProjects/PaymentGateway/Bank/Bank.csproj]

我为 dotnetcore3 安装了运行时和 SDK,如下所示,当前版本为 3.0.100。

dotnet --version 3.0.100

点网--信息

我不明白为什么 msbuild 来自单声道框架而不是 .net 核心。有没有办法指定应该在 Mac 上使用哪个 msbuild?

标签: macosmsbuildpsake

解决方案


您可以直接使用.NET Core 附带dotnet msbuildmsbuildMSBuild 版本。


推荐阅读