MSBuild 在运行时导入可更改的项目
MSBuild Import a changable project at runtime
我有一个 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 的内容。
但我看到所有 运行 时间只使用变量中属性的第一个值,似乎它不再导入而不是第一个。
请告诉我如何强制重新导入变量?
感谢 wkl 的回答,基于 post 中的想法,我尝试重命名变量文件并导入这些文件,以防止缓存。
我有一个 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 的内容。
但我看到所有 运行 时间只使用变量中属性的第一个值,似乎它不再导入而不是第一个。
请告诉我如何强制重新导入变量?
感谢 wkl 的回答,基于 post 中的想法,我尝试重命名变量文件并导入这些文件,以防止缓存。