使用msbuild 3.5生成解决方案时跳过项目

使用msbuild 3.5生成解决方案时跳过项目,msbuild,Msbuild,我有一个解决方案,在文件夹上有许多库+网站 当我使用msbuil而不是此解决方案时,它会将网站预编译为一个新的文件夹名PrecompiledWeb。我想跳过它,只需构建所有库 如何才能做到这一点?我会设置一个特殊的目标,或者可能是一个不同的msbuild文件 我使用一个.msbuild文件和几个不同的批处理文件,这样我就可以通过使用不同的批处理文件来构建应用程序的特定部分或整个内容 在.msbuild文件中,可以有两个目标,一个用于完整生成,另一个仅用于LIB: <Target Name=

我有一个解决方案,在文件夹上有许多库+网站

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


如何才能做到这一点?

我会设置一个特殊的目标,或者可能是一个不同的msbuild文件

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

.msbuild
文件中,可以有两个目标,一个用于完整生成,另一个仅用于LIB:

<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

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

msbuild.exe/t:LibBuild


msbuild.exe/t:FullBuild

您应该能够通过创建新配置(LibOnly)来完成此操作,并且在Visual Studio配置管理器中仅检查要生成的项目。然后从命令行:

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

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

这是一个很好的解决方案,您绝对需要添加
/p:Platform=yourplatform
,或者使用默认的“mixed Platform”,并且您对每个组合构建与否的选择不同。