Конфигурация публикации отключена для csproj
Почему я не могу изменить эти настройки, показанные на рисунке ниже?
Это приложение clickOnce, и моя проблема в том, что я хочу изменить путь публикации, имя сборки, имя продукта, URL-адрес установки и предварительно отформатировать некоторые переводы app.config на основе конфигурации сборки. Я могу добиться этого путем ручного редактирования csproj, как это так
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<AssemblyName>someApplicationTest</AssemblyName>
<ProductName>Some Application Test</ProductName>
<PublishUrl>c:\publish\someApplicationTest\</PublishUrl>
<InstallUrl>http://sub.example.com/someApplicationTest/</InstallUrl>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<AssemblyName>someApplication</AssemblyName>
<ProductName>Some Application</ProductName>
<PublishUrl>c:\publish\someApplication\</PublishUrl>
<InstallUrl>http://sub.example.com/someApplication/</InstallUrl>
</PropertyGroup>
Я просто запутался, почему эти опции отключены в visual studio и что-то упускаю. Возможно, я запутался, и эти элементы управления даже не были предназначены для этой цели.
Кроме того, я собираюсь исследовать Squirrel.Windows в качестве альтернативы позже, но сейчас я хотел бы узнать больше об этом.
1 ответ
Это просто визуальное представление структуры файла проекта. Некоторые настройки могут иметь разные значения для разных конфигураций. Другие имеют только одно значение, которое не зависит от конфигурации. Лучший пример первого набора - настройки на вкладке "Сборка". Конечно, вы хотите построить свою программу по-другому в сборке выпуска. Таким образом, комбинации конфигурации включены.
Также посмотрите в файле.csproj с текстовым редактором, Блокнот будет хорошо. Обратите внимание <PropertyGroup>
элементы, некоторые имеют Condition
атрибут, который позволяет им для конкретной конфигурации. Свойства публикации расположены в PropertyGroup без условия.
Поэтому для настроек на вкладке "Публикация" Microsoft решила, что нет необходимости делать настройки, специфичные для конфигурации. Что имеет смысл, если вы подумаете об этом, вы только опубликуете свою версию выпуска. Ну нормально. Так что комбо отключены. Особенность, а не ошибка.