0

E.g. Я хотел бы расширение, чтобы сделать эквивалент:Может ли расширение изменять переменные препроцессора, используемые во время сборки?

if (this_is_my_machine) 
{ 
    #undef DEBUG 
} 

это повлечет за собой расширение изменяющего командных строк ККА, используемые для всех или отдельных проектов в процессе сборки Visual Studio. Полагаю, это то, что я хотел бы знать, если это можно сделать.

+1

Почему бы просто не изменить конфигурацию сборки, которую вы используете? – Justin

+0

Я хочу, чтобы расширение анализировало среду сборки и имело конфигурацию сборки для каждой мыслимой среды. – ProfK

+0

как вы определяете 'this_is_my_machine'? – RoughPlace

ответ

0

Возможно, вы не хотите делать это через расширение. (Игнорируйте детали на мгновение, которые вы действительно не можете, или, по крайней мере, не так, как это полезно для вас.) Стандартный вопрос о эксперименте заключается в том, «что произойдет, если построить вне Visual Studio?» Подумайте о непрерывных машинах интеграции, или я просто ленив и набираю msbuild в командной строке.

В файле проекта, вы всегда можете добавить что-то вроде:

<PropertyGroup Condition="'$(ComputerName)' == 'MY-COMPUTER-NAME'"> 
    <DefineConstants>SPECIAL_BUILD_MACHINE</DefineConstants> 
</PropertyGroup> 

Положи после других групп свойств, так как файл оценивается сверху вниз.

+0

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

+0

Нет, нет, нет, нет. Это нарушает контроль источника и целый ряд других вещей. Не делай этого. –

+0

Если я проверил изменения в предварительной сборке, я мог бы отметить это как такое изменение, которое будет игнорироваться в отчетах об обычных изменениях. – ProfK