MSBuild在运行时导入一个可更改的项目

时间:2017-02-10 10:13:05

标签: msbuild msbuild-task msbuild-4.0

我有一个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>

每次更改Variables.msbuild的内容时,都会多次调用目标CreateEnvironmentSpecificInstaller。

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

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

1 个答案:

答案 0 :(得分:0)

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