【问题标题】:MSBuild Import a changable project at runtimeMSBuild 在运行时导入可变项目
【发布时间】:2017-02-10 10:13:04
【问题描述】:

我有一个 msbuild 脚本:Msi.msbuild,它导入了一个 Variables.msbuild 项目:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="CreateInstaller">

  <Import Project="$(RedistDir)\Framework\Variables.msbuild" />
<Project>

Msi.msbuild 在另一个 msbuild 脚本中多次构建:BuildMsi.msbuild

  <Target Name="CreateEnvironmentSpecificInstaller" DependsOnTargets="$(SpecificBuildSteps)">
    <Message Text="Write installer to $(OutputDir)" />
    <MSBuild Projects="$(RedistDir)\Framework\Msi.msbuild" Targets="CreateBatchScripts" StopOnFirstFailure="true" Properties="Configuration=$(Configuration);" RebaseOutputs="true" />
  </Target>

多次调用目标CreateEnvironmentSpecificInstaller,每次改变Variables.msbuild的内容。

但我看到只有变量中属性的第一个值用于所有运行时间,似乎它不再导入而不是第一个。

请告诉我如何强制重新导入变量?

【问题讨论】:

  • 你如何确保 Variables.msbuild 在你期望的时候改变了?您的脚本会更改文件吗?
  • 是的,我有一个脚本来更改它,使用 Xml.XslTransform。在
  • 你是在命令行还是在 VisualStudio 中运行它?
  • 我在命令行中运行。
  • This answer 是关于 VisualStudio 中的一个类似问题,但也许它也对你有帮助?基本上它是关于强制 VS 不缓存导入的文件。

标签: msbuild msbuild-task msbuild-4.0


【解决方案1】:

感谢 wkl 的回答,基于该帖子中的想法,我尝试重命名变量文件并导入这些文件,以防止缓存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多