Я читаю имя машины из переменной среды COMPUTERNAME
в условный символ компиляции:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DefineConstants>TRACE;$(COMPUTERNAME)</DefineConstants>
</PropertyGroup>
После этого я объявляю директиву препроцессора для компиляции некоторого кода в зависимости от имени машины:
#if MY-MACHINE
// Some code
#elif SOME-ELSE-MACHINE
// Other lines of code...
#else
// ...
#endif
Однако в имени машины может быть дефис (-
), поэтому я получаю ошибки и не могу собрать проект с этой конфигурацией. При наборе кода выше в Visual Studio, я получаю ошибку:
Ошибка CS1025 Ожидается однострочный комментарий или конец строки
и при сборке даже безВ условной инструкции компиляции я получаю предупреждение:
Предупреждение MSB3052 Недопустимый параметр для компилятора, '/ define: MY-MACHINE' будет игнорироваться.
Как обойти это? Есть ли способ «уйти» от условных символов компиляции. Или я должен просто отказаться от этого и прочитать время выполнения переменной среды?