从命令行仅在解决方案中生成一个项目
本文关键字:项目 一个 命令行 解决方案 | 更新日期: 2023-09-27 17:48:58
我有一个解决方案,里面有很多解决方案文件夹,里面有很多c#项目。
如何从命令行构建/重建这些项目中的一个?
我猜有一些方法可以使用msbuild
,但我对msbuild一无所知。
谢谢!
给定一个包含项目的解决方案文件,并且您想要构建/重建一个项目。
MSDN上的这个网页列出了你必须做的事情:
http://msdn.microsoft.com/en-us/library/ms171486.aspx给定一个解决方案文件mysolution。带有项目的SLN:
- foo。vcxproj
- 栏。vcxproj
- baz.vcxproj
它们按照从下到上的顺序相互依赖。因此,baz
是最独立的,bar
依赖于baz
, foo
依赖于bar
。
如果你想构建foo,那么你可以这样做:
MSBuild mysolution.sln /target:foo
这里的其他答案没有考虑到依赖关系。当然msbuild.exe将构建单个项目文件(即foo.vcxproj),但如果bar和baz尚未构建,它将失败。为了构建多个项目并首先构建独立项目,您必须传递解决方案文件(毕竟OP确实提到这是解决方案文件的一部分)。然后传入项目名称和以冒号分隔的目标。
MSBuild mysolution.sln /target:foo:Rebuild
这是个大假设。我假设项目名称$(ProjectName)与文件名匹配。
编辑(来自注释):如果您碰巧在项目名称中有点(.),您需要用下划线(_)替换它们。
您可以简单地调用msbuild
并将.csproj/。如果你想创建一个Vbproj项目文件,它只会创建一个。
比如:
cd 'MySolution
msbuild .'Project1'Project1.csproj
您可以参考此参考资料以了解更多关于从命令行使用MSBuild的信息。以下是您需要的示例:
MSBuild.exe MyProject.proj /t:rebuild
作为信息发布给未来的求职者
设置MSBuildEmitSolution = 1
https://stackoverflow.com/a/40372894/826862