【问题标题】:Single configuration for multiple projects with MSBuild?使用 MSBuild 对多个项目进行单一配置?
【发布时间】:2014-08-21 11:42:17
【问题描述】:

我正在寻找以某种方式使用 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 文件中并加载配置并从那里加载吗?我想防止将来可能出现的更新问题。

感谢您的帮助

【问题讨论】:

  • 只有&lt;Import Project="myProj.targets"&gt; 在每个项目中,myProj.targets 包含显示的代码? - 虽然我认为你最好不使用 SolutionDir 而使用 ProjectDir 等,但并非所有项目都有解决方案
  • 谢谢,这正是我需要的。如何将您的评论标记为答案?
  • 你不能 - 我将其添加为实际答案然后你可以接受

标签: configuration msbuild external


【解决方案1】:

你可以使用

<Import Project="myProj.targets">

在每个项目中,myProj.targets 包含您显示的代码。 然而,最好参考ProjectDir 之类的而不是SolutionDir,因为并非所有项目都有相应的解决方案,即使有,您也可能希望像没有一样使用它们。无论如何,这样你的项目是独立的,不需要解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-26
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多