使用MSBuild进行多个项目的单一配置?

时间:2014-08-21 11:42:18

标签: configuration msbuild external

我正在寻找以某种方式使用MSBuild构建的可能性,我可以在多个项目中使用一种配置。

以下是我要分享的配置:

  <ItemGroup>
    <MySourceFiles Include="$(TargetDir)\*.*"/>
  </ItemGroup>

  <Target Name="Prepare" BeforeTargets="BeforeBuild">
    <Message Text="Preparing folders..." Importance="high" />
    <MakeDir Directories="$(SolutionDir)Build\$(Configuration)" />
    <MakeDir Directories="$(SolutionDir)Build\$(Configuration)\Plugins" />
    <Message Text="Folders prepared..." Importance="high" />
  </Target>

  <Target Name="AfterBuild">
    <Message Text="$(AssemblyName) - Copying output" Importance="high" />
    <Copy SourceFiles="@(MySourceFiles)" DestinationFolder="$(SolutionDir)Build\$(Configuration)" SkipUnchangedFiles="false" />
    <Message Text="$(AssemblyName) - Copying finished" Importance="high" />
  </Target> 

如你所见。它只需检查/创建 Build / Debug 文件夹并在那里复制所有编译的文件。我需要多个项目。

是否可以在某些外部xml或proj文件中加载配置并从那里加载它?我想在将来防止更新可能出现的问题。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可以使用

<Import Project="myProj.targets">

在每个项目中,myProj.targets包含您显示的代码。 但是,引用ProjectDir和喜欢而不是SolutionDir可能更好,因为并非所有项目都有相应的解决方案,即使他们这样做,您也可能希望使用它们,就好像它们没有。无论如何,这样你的项目是独立的,不需要解决方案。