Публикация конфигурации отключена для 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 как альтернатива позже, а пока я хотел узнать больше об этом.


person Oxymoron    schedule 11.11.2015    source источник
comment
Вы пытались создать новый проект и импортировать все свои формы/код?   -  person Gabriel GM    schedule 09.02.2016
comment
Нет, не знаю, любопытно, что вы ищете с таким подходом.   -  person Oxymoron    schedule 09.02.2016
comment
Чтобы узнать, есть ли у вас конфигурация, влияющая на отключенные поля   -  person Gabriel GM    schedule 09.02.2016
comment
Создание нового проекта WPF в Visual Studio 2015 Enterprise по-прежнему вызывает ту же проблему. То же самое с веб-приложением (ASP.NET 4.6.1), я не импортировал существующий код.   -  person Oxymoron    schedule 09.02.2016


Ответы (1)


Это просто визуальное представление структуры файла проекта. Некоторые настройки могут иметь разные значения для разных конфигураций. Другие имеют только одно значение, не зависящее от конфигурации. Лучшим примером первого набора являются настройки на вкладке Build. Конечно, вы хотите построить свою программу по-другому в сборке Release. Таким образом, комбинации конфигурации включены.

Также просмотрите файл .csproj в текстовом редакторе, Блокнот отлично подойдет. Обратите внимание на элементы <PropertyGroup>, у некоторых есть атрибут Condition, который включает их для определенной конфигурации. Свойства публикации находятся в PropertyGroup без условия.

Поэтому для настроек на вкладке «Публикация» Microsoft решила, что нет необходимости делать настройки специфичными для конфигурации. Что имеет смысл, если подумать, вы бы опубликовали только свою сборку Release. Ну нормально. Таким образом, комбо отключены. Фича, а не баг.

person Community    schedule 12.02.2016
comment
Я понимаю, что при нормальных обстоятельствах имеет смысл публиковать только сборку релиза. Но как насчет того, когда вы используете профили публикации для создания разных этапов (например, разработки, подготовки и т. д.). И вы публикуете с помощью clickOnce. - person Oxymoron; 15.02.2016
comment
Вы спросите, почему эти опции отключены, я объяснил. То, что ваш рабочий процесс отличается от предсказанного Microsoft, должно быть очевидным. Никто этого не делает, это не то, для чего должен был делать CO. Инструменты Google .net для продвижения вперед. - person Hans Passant; 15.02.2016
comment
Ладно, мне было просто любопытно, почему надо мной насмехаются над элементами управления, как будто кто-то в какой-то момент подумал, что это допустимое использование, но затем отказался от этого, хотя на самом деле не стал следить за этим, просто оставил управление отключено... предположим, мы никогда не узнаем... - person Oxymoron; 15.02.2016
comment
Я заявил [Если] эти элементы управления даже не предназначались для этой цели в исходном вопросе. - person Oxymoron; 15.02.2016