2017-02-10 125 views
2

一个多变的项目,我有一个MSBuild的脚本:Msi.msbuild其中进口一个Variables.msbuild项目:进口的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。

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

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

+0

如何确保Variables.msbuild在您期望时发生更改?你的脚本是否改变了这个文件? – wkl

+0

是的,我有一个脚本来改变它,使用Xml.XslTransform。就在

+0

你是在命令行还是在VisualStudio中运行它? – wkl

回答

0

感谢wkl的回答,根据这篇文章中的想法,我尝试重命名变量文件并导入这些文件,以防止缓存。