使用msbuild 3.5构建解决方案时跳过项目

时间:2009-10-26 21:39:26

标签: msbuild

我在文件夹上有许多库+网站的解决方案。

当我使用msbuil与此解决方案时,它会将网站预编译为新文件夹名称PrecompiledWeb。我想跳过它,只需构建所有库。

我该怎么做?

2 个答案:

答案 0 :(得分:7)

我会设置一个特殊目标或者可能是另一个msbuild文件。

我使用一个.msbuild文件和几个不同的批处理文件,这样我就可以使用不同的批处理文件构建应用程序的特定部分或整个部分。

.msbuild文件中,您可以有两个目标,一个用于完整版本,另一个用于libs:

<Target Name="FullBuild">
  <MSBuild Projects="YourSolution.sln" />
</Target>

<Target Name="LibBuild">
  <MSBuild Projects="YourLibProject1.csproj" />
  <MSBuild Projects="YourLibProject2.csproj" />
  <MSBuild Projects="YourLibProject3.csproj" />
</Target>

因此,您可以使用构建整个解决方案的FullBuild目标调用msbuild,或者使用LibBuild来构建您想要的特定项目。

批处理文件可能如下所示:

msbuild.exe /t:LibBuild

msbuild.exe /t:FullBuild

答案 1 :(得分:5)

您应该可以通过创建新配置(LibOnly)来执行此操作,并且在Visual Studio Configuration Manager中仅检查要构建的项目。然后从命令行:

msbuild.exe YourSolution.sln /p:Configuration=LibOnly

正如之前的评论者提到的,您可以创建自己的MSBuild文件来指定要构建的项目。我认为这是一个很好的方法,我不喜欢构建解决方案文件。