使用 Cake build 构建引用 NETStandard 项目的 NET Framework 项目

Build NET Framework project that references NETStandard project with Cake build

我有两个项目:StdLib NETStandard 2.0 class 库和 Console.Framework .NET Framework 4.6.1 项目。 控制台应用程序引用 class 库。

我尝试使用 Cake build 构建解决方案。 我使用 DotNetBuild 方法 (link) 并得到以下输出:

Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch. Build started 9/12/2017 2:35:55 PM. Project "C:\Projects\NetStdExample\NetStdExample.sln" on node 1 (Build target(s)). ValidateSolutionConfiguration: Building solution configuration "Debug|Any CPU". Project "C:\Projects\NetStdExample\NetStdExample.sln" (1) is building "C:\Projects\NetStdExample\NetStdExample.StdLib\NetStdExample.StdLib.csproj" (2) on node 1 (default targets). C:\Projects\NetStdExample\NetStdExample.StdLib\NetStdExample.StdLib.csproj(1,1): error MSB4041: The default XML namespace of the project must be the MSBuild XML namespace. If the project is authored in the MSBuild 2003 format, please add xmlns="http://schemas.microsoft.com/developer/msbuild/2003" to the <Project> element. If the project has been authored in the old 1.0 or 1.2 format, please convert it to MS Build 2003 format. Done Building Project "C:\Projects\NetStdExample\NetStdExample.StdLib\NetStdExample.StdLib.csproj" (default targets) -- FAILED.

有没有办法使用 Cake 构建此类项目?

DotNetBuild 别名是一个较旧的别名,它可以就是否构建做出明智的决定:

the specified solution using MSBuild or XBuild.

即它将查看构建当前 运行ning 的机器类型,以及 运行 MSBuildXBuild.

从你的问题听起来,这听起来不像你想要的。相反,我认为您是在使用 DotNetCore 别名:

https://www.cakebuild.net/api/Cake.Common.Tools.DotNetCore/DotNetCoreAliases/

即你可以这样做:

DotNetCoreBuild(BuildParameters.SolutionFilePath.FullPath);

使用 dotnet cli 构建指定的解决方案。

DotNetBuild 别名可能会在某个时候被废弃。