我有一个包含大量解决方案文件夹的解决方案,里面有很多c#项目。
如何从命令行中仅构建/重建其中一个项目?
我想有一些方法可以使用msbuild
来做,但我对msbuild一无所知。
谢谢!
答案 0 :(得分:87)
给定一个包含项目的解决方案文件,并且您希望构建/重建一个项目。
MSDN上的这个网页准确列出了您必须做的事情:
http://msdn.microsoft.com/en-us/library/ms171486.aspx
给定一个带有项目的解决方案文件mysolution.sln:
他们都以自下而上的顺序相互依赖。因此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)与文件名匹配。
修改(来自comment):如果项目名称中恰好有点(。),则需要用下划线(_)替换它们。
答案 1 :(得分:22)
您只需调用msbuild
并将其传递给您要构建的.csproj / .vbproj项目文件,它只会执行该文件。
类似于:
cd \MySolution
msbuild .\Project1\Project1.csproj
答案 2 :(得分:4)
您可以参考this参考了解有关从命令行使用MSBuild的更多信息。以下是您需要的示例:
MSBuild.exe MyProject.proj /t:rebuild
答案 3 :(得分:1)