Мы собираемся предоставить два пользовательских коммутатора платформы ( платформа в диспетчере конфигурации) для наших проектов в Visual Studio .
Например, один для «рабочего стола» и один для «Интернета». Затем целевые задачи сборки компилируют код нестандартным способом на основе переключателя платформы. Мы не хотим добавлять к переключателю Debug Release, потому что они нам нужны для каждой настольной и веб-платформ.
Мы нашли один из способов сделать это: изменить файл .csproj, добавив что-то вроде этого
<Platform Condition=" '$(Platform)' == '' ">Desktop</Platform>
и добавьте группы свойств, например,
<PropertyGroup Condition=" '$(Platform)' == 'Web' ">
<DefineConstants>/define Web</DefineConstants>
<PlatformTarget>Web</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'Desktop' ">
<DefineConstants>/define Desktop</DefineConstants>
<PlatformTarget>Desktop</PlatformTarget>
</PropertyGroup>
Но все равно это не работает, и компилятор выдает ошибку
Неверный параметр «Рабочий стол» для / платформы; должно быть anycpu, x86, Itanium или x64
Так должен ли быть один из этих вариантов, и мы не можем добавить наши пользовательские платформы?
Кто-нибудь мог это сделать? любые указатели были бы полезны.
Обновление: использование DebugDesktop и ReleaseDesktop сделает его более сложным для пользователей. Поскольку «рабочий стол» и «веб» на самом деле являются платформами, а также есть возможность добавлять новые платформы в раскрывающемся меню (т. Е.), Я считаю, что переключатель «платформа» следует использовать для точно такой же цели.