2017-02-10 20 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> 

мишень CreateEnvironmentSpecificInstaller называется несколько раз, каждый раз, когда содержание Variables.msbuild изменяется.

Но я вижу, что только первые значения свойств в переменной используются для всего времени выполнения, кажется, что он больше не импортируется, а не первый.

Скажите, пожалуйста, как я могу принудительно импортировать переменные?

+0

Как вы убедитесь, что Variables.msbuild изменен, когда вы ожидаете его? Сценарии меняют файл? – wkl

+0

Да, у меня есть сценарий, чтобы изменить его, используя Xml.XslTransform. Прямо перед строкой

+0

Вы запускаете это в командной строке или в VisualStudio? – wkl

ответ

0

Поблагодарите wkl за ответ, основываясь на идее в этом сообщении. Я пытаюсь переименовать файл Variables и импортировать те, чтобы предотвратить кеширование.