Как я могу разобрать значение DefineConstants в цели BeforeBuild? - PullRequest
0 голосов
/ 30 сентября 2011

Относится к этому вопросу .

Что мне действительно нужно, так это способ установки пар ключ-значение, которые можно задать из Vis Studio 2010 IDE.Кажется, я не могу установить значения свойств проекта из среды IDE, поэтому я смотрю на использование констант компилятора.

Так что, если у меня константы компилятора установлены на

 <DefineConstants>Foo=bar;Key=Value 2;</DefineConstants>

Я анализирую это (в скажем, цель BeforeBuild), чтобы я мог извлечь значения «бар» и «Значение 2»?Мои навыки работы с MSBuild практически бесполезны, и мой Google foo не нашел никаких решений.

1 Ответ

0 голосов
/ 30 сентября 2011

Вы можете переопределить это значение при компиляции проекта с MSBuild.

 msbuild.exe myproj.csproj /p:DefineConstants="foo=true"

Вы не можете установить свойства сборки в задаче BeforeBuild, но вы можете прочитать их, используя:

 $(DefineConstants)

Это вернет необработанную строку, и вам потребуется проанализировать строку с помощью пакетных команд, чтобы разделить их на пары ключ / значение на этапе BeforeBuild.

Не совсем уверен, что вы пытаетесь сделать, DefineConstants как раз и упоминаются в коде для условной компиляции. Если вы хотите добавить пользовательские свойства сборки, вы можете отредактировать файл csproj и включить свой собственный файл целей. Это зависит от того, где и почему вы хотите получить к ним доступ. В процессе сборки IDE (плагин) или код?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...