msbuild不会在发布配置中构建

时间:2018-06-08 09:08:22

标签: c# .net msbuild

使用msbuild 14.0并从命令中调用它:

C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe C:\Project\MySolution.sln /t:Build /p:Configuration=Release /p:Platform='Any CPU'

MySolution 是一个Visual Studio C#解决方案,由几个项目组成: Project1 Project2 ,......

输出:

Microsoft (R) Build Engine version 14.0.25420.1
Copyright (C) Microsoft Corporation. All rights reserved.

Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
Build started 2018-06-08 10:48:08 AM.
Project "C:\Project\MySolution.sln" on node 1 (Build /p:Configuration=Release /p:Platform='Any CPU
' target(s)).
ValidateSolutionConfiguration:
  Building solution configuration "Debug|Any CPU".
ValidateProjects:
  The project "Project3" is not selected for building in solution configuration "Debug|Any CPU".
C:\Project\MySolution.sln.metaproj : error MSB4057: The target "Build /p:Configuration=Release /p:
Platform='Any CPU'" does not exist in the project. [C:\Project\MySolution.sln]
Done Building Project "C:\Project\MySolution.sln" (Build /p:Configuration=Release /p:Platform='Any
 CPU' target(s)) -- FAILED.


Build FAILED.
  • 为什么msbuild没有在发布配置中构建解决方案?它总是默认为 debug ??解决方案配置正确,从Visual Studio调用时使用该配置构建没有任何问题。

  • msbuild总是选择 Project3 并声称未选择来构建解决方案配置“Debug | Any CPU”,这是不正确的。此解决方案中的所有项目也可以在调试配置中构建。但这不是我在这里要做的。

解决方案配置的屏幕截图:

Screenshot of the solution's configuration

列表底部的两个未经检查的项目是单元测试。

其他问题:

  • 如何将/verbosity开关集成到构建命令中?

3 个答案:

答案 0 :(得分:2)

我没有使用msbuild 14.0,而是使用了msbuild 15.0(无论如何我都是目标框架4.6.1),错误消失了。

答案 1 :(得分:0)

请您使用您的命令添加此附加属性并进行检查。

/p:TargetFramework=<version>

答案 2 :(得分:0)

从您选择调试/发布的列表框中单击“Configuration Manager”,并检查解决方案发布配置是否所有项目都设置为“发布” - &gt; “AnyCPU”。  enter image description here

希望这个帮助, 军团

第二个问题答案:

/fileLogger1 /fileLoggerParameters:LogFile=MyLog.log;Append; Verbosity=diagnostic;Encoding=UTF-8

/verbosity:diagnostic