在目录中构建所有项目

时间:2012-03-26 01:36:55

标签: msbuild csproj

我尝试构建位于根目录下的单独目录中的插件。

  <ItemGroup>
    <PluginProjectFiles Include="$(MSBuildStartupDirectory)..\..\Plugins\**\*.csproj"/>
  </ItemGroup>
  <Target Name="BuildPlugins">
    <MSBuild Projects="@(PluginProjectFiles)" Targets="Clean;Build" Properties="Configuration=Release" />
    <Message Text="Dir: $(MSBuildStartupDirectory)" />
  </Target>

虽然我有问题。我的构建运行'BuildPlugin'目标,但它不构建我的项目文件。如果可以避免的话,我真的不想单独构建每个项目。

任何想法都会很棒。谢谢,

1 个答案:

答案 0 :(得分:3)

请参阅我的决议。

  <PropertyGroup>
    <SrcFolder>$(MSBuildProjectDirectory)\..\..</SrcFolder>
  </PropertyGroup>
  <ItemGroup>
    <PluginProjectsFiles Include="$(SrcFolder)\Plugins\Plugin.*\*.csproj" />
  </ItemGroup>
  <Target Name="BuildPlugins">
    <Message Text="Building Plugins" />
    <MSBuild Projects="@(PluginProjectsFiles)" Targets="Clean;Build" Properties="Configuration=Release" />
    <Message Text="Plugins Built" />
  </Target>

然后我将主要构建目标上的DependsOnTargets属性更改为“BuildPlugins”目标。希望这有助于某人,因为这会给我带来相当大的痛苦。