使用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”,这是不正确的。此解决方案中的所有项目也可以在调试配置中构建。但这不是我在这里要做的。
解决方案配置的屏幕截图:
列表底部的两个未经检查的项目是单元测试。
其他问题:
/verbosity
开关集成到构建命令中?答案 0 :(得分:2)
我没有使用msbuild 14.0,而是使用了msbuild 15.0(无论如何我都是目标框架4.6.1),错误消失了。
答案 1 :(得分:0)
请您使用您的命令添加此附加属性并进行检查。
/p:TargetFramework=<version>
答案 2 :(得分:0)