从命令行仅在解决方案中生成一个项目

本文关键字:项目 一个 命令行 解决方案 | 更新日期: 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

相关文章: