【发布时间】: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