我需要使用msbuild构建解决方案的特定项目的命令行,就像我们使用devenv.com.In devenv.com所做的那样,我们可以使用以下命令行指定解决方案的项目
devenv.com /Build Release|x86 test.sln /project "testproject"
使用上面的命令行,我可以使用devenv.com.What在test.sln中构建测试项目,这是用于相同解决方案的msbuild的命令行。
谢谢
发布于 2012-12-19 23:22:41
MSBuild实际上是通过使用项目而不是解决方案来工作的。该解决方案仅用于在内部将其解析为MSBuild中的临时项目文件。通过执行以下命令,您应该能够直接通过MSBuild构建感兴趣的项目。
"msbuild testproject /p:Configuration=Release /p:Platform=x86"
我知道有一个主要问题,您可能会直接使用项目而不是解决方案:如果您使用解决方案来表达项目之间的依赖关系,而不是添加对项目的引用并让构建系统自动解决依赖关系。
如果您使用sln文件强制执行构建顺序,我建议将这些依赖项直接处理到项目文件中,并从sln中删除它们。这将允许您直接从MSBuild调用任何项目文件,并且项目都将独立构建,而不需要任何额外的工作。您真的应该将sln文件视为一组项目,以便在Visual Studio中更轻松地工作,而不是作为构建输入。
发布于 2016-11-02 13:12:42
作为信息发布给未来的搜索者
将以下代码添加到构建脚本中并运行一次。这将生成msbuild实际使用的确切目标和其他信息。
例如:如果项目名称或文件夹中包含.
,则msbuild将使用_
代替.
。
set MSBuildEmitSolution=1
获得信息后,使用所需的详细信息更新构建脚本。
发布于 2019-03-20 03:16:30
为了添加额外的信息,在项目文件夹中执行msbuild将默认构建项目文件,因为它是其中唯一的文件。
>msbuild
以这种方式使用msbuild有很多不同的变体。您可以直接指定项目文件。
>msbuild helloworld.csproj -t:Build.
查看msbuild文档,了解用法、项目文件要求以及构建项目而不是构建解决方案的好处。
正如mark-smith上面提到的那样,以这种方式构建有很多好处。
https://stackoverflow.com/questions/13915636
复制相似问题