Мета-свойства MSBuild - как получить значение свойства, если имя свойства представляет собой композицию других свойств? - PullRequest
3 голосов
/ 18 марта 2011

Я бы хотел написать ниже, но не могу в msbuild:

<Target Name="SetDynamicPropertyValues"> 
   <PropertyGroup>
      <TargetHost>$($(Target-Environment)-Host)</TargetHost>
   </PropertyGroup>
</Target>

Это легко сделать в NAnt с помощью функции property :: get-value .Ответ на предыдущий вопрос показывает подход с использованием атрибута Condition .

Есть ли более хороший способ сделать это?

1 Ответ

0 голосов
/ 18 марта 2011

MSBuild обрабатывает имена свойств один раз. Чтобы сделать такую ​​функцию, она должна вызывать предварительную обработку несколько раз. Я думаю, что было бы лучше использовать условный подход.

<PropertyGroup>
   <TargetHost Condition="'$(Target-Environment)'=='Env1'">Host_1</TargetHost>
   <TargetHost Condition="'$(Target-Environment)'=='Env2'">Host_2</TargetHost>
   <TargetHost Condition="'$(TargetHost)'==''">DefaultHost</TargetHost>
</PropertyGroup>
...