2017-02-10 129 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的回答,根據這篇文章中的想法,我嘗試重命名變量文件並導入這些文件,以防止緩存。