У меня есть сценарий 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 изменяется.
Но я вижу, что только первые значения свойств в переменной используются для всего времени выполнения, кажется, что он больше не импортируется, а не первый.
Скажите, пожалуйста, как я могу принудительно импортировать переменные?
Как вы убедитесь, что Variables.msbuild изменен, когда вы ожидаете его? Сценарии меняют файл? – wkl
Да, у меня есть сценарий, чтобы изменить его, используя Xml.XslTransform. Прямо перед строкой
Вы запускаете это в командной строке или в VisualStudio? – wkl