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

时间:2017-09-12 12:49:04

标签: .net msbuild .net-standard cakebuild

我有两个项目:StdLibNETStandard 2.0类库,Console.Framework.NET Framework 4.6.1项目。 控制台应用程序引用类库。

我尝试使用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构建此类项目?

1 个答案:

答案 0 :(得分:2)

DotNetBuild别名是一个较旧的别名,可以明确决定是否构建:

  

使用MSBuild或XBuild的指定解决方案。

即。它将查看当前正在运行的构建类型的计算机,并运行MSBuildXBuild

从问题的声音来看,这听起来并不像你想要的那样。相反,我认为你是在DotNetCore别名之后:

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

即。你可以这样做:

DotNetCoreBuild(BuildParameters.SolutionFilePath.FullPath);

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

DotNetBuild别名可能会在某个时候被淘汰。