Как передать пользовательское свойство MsBuild в механизм сборки Visual Studio из Visual Studio Extension (я хочу написать пользовательскую надстройку)? Так же, как и сама Visual Studio передает свойства, такие как $(Configuration)
и $(Platform)
, я хотел бы приложить к процессу сборки и передать свое собственное свойство (например, $(MyCustomProperty) = "foobar"
). Я знаю, что это можно сделать с помощью командной строки MsBuild (/p:Property
), но я хочу сделать это из расширения.Передача пользовательских свойств проекта из Visual Studio Extension во время сборки
Вот пример того, что я хотел бы сопровождать: текстовое поле на панели инструментов visual studio, где пользователь может ввести текст - значение, которое я хотел бы передать в механизм сборки.
Тогда в .csproj:
<PropertyGroup>
<MyCustomProperty Condition=" '$(MyCustomProperty)' == '' ">DefaultValue</MyCustomProperty>
</PropertyGroup>
<Target Name="AfterBuild" Condition=" '$(MyCustomProperty)' = 'DoAfterBuild' ">
...
</Target>
Так цель AfterBuild
будет exectued только если пользователь ввел DoAfterBuild
в текстовом поле моего внутреннего абонента
Как Visual Studio Extension вызывается MSBuild? – Nicodemeus
@NickCarlson - я не хочу ссылаться на файлы MsBuild, но .csproj. Сценарии MsBuild и Visual Studio передают фактические значения переменных $ (Platform) и $ (Configuration) во время сборки. Я хочу иметь значение $ (MyOwnProperty), переданное этому скрипту, поэтому я могу его использовать (например,) –
В вашем исходном сообщении вы сказали вы хотите определить свое собственное свойство с помощью расширения Visual Studio, но теперь вы говорите, что не хотите вызывать MSBUILD. Вы пишете собственное расширение и хотите определить свои собственные пользовательские свойства? Возможно, образец кода поможет проиллюстрировать проблему. – Nicodemeus