Веб-приложение ASP.Net Добавить конфигурацию, преобразовать выделено серым цветом


88

Я добавил в свое решение существующий проект веб-приложения ASP.Net. В дополнение к стандартным конфигурациям отладки и выпуска это решение также имеет две пользовательские конфигурации: SAT и UAT. Для нового веб-приложения щелчок правой кнопкой мыши на Web.Config отображает контекстное меню, но опция «Добавить преобразование конфигурации» неактивна.

Я в растерянности. Новый проект - это веб-приложение. Диспетчер конфигураций не отображает две пользовательские конфигурации для этого проекта, но он показывает их для других проектов. Похоже, что проект имеет правильные записи в файле решения.

Мысли?

Ответы:


115

Сначала необходимо определить конфигурации в Configuration Manager. Чтобы быть уверенным, что вы запускаете Configuration Manager, вы можете получить к нему доступ, перейдя в: Build-> Configuraton Manager

В раскрывающемся списке Active Solution Configuration выберите <New...>. После того, как вы добавили, вы сможете «Добавить преобразование конфигурации».

Не редактируйте файл решения напрямую. Это вызовет только головную боль.


6
Ага. Я пробовал это раньше, но не смог снять флажок «создать», поэтому он не работал как «дубликат». Как только я снял флажок «создать», все заработало.
paulv7260

@maplemale То же самое, вариант все еще серый
Андерс Линден

Извините, я не могу вспомнить, как у меня это заработало. Возможно, я взломал файл sln напрямую, вопреки ответу Джереми, иногда это просто единственный жизнеспособный вариант. Однако у меня не было этой проблемы с момента обновления до VS2015.
maplemale 08

2
Конфигурации решения и проекта разные! Вам необходимо создать конфигурацию в данном проекте, прежде чем он сможет использовать это преобразование. Либо отметьте «Создать новые конфигурации проекта», чтобы создать конфигурацию сразу во всех проектах, либо сделайте это индивидуально, как это сделал @ paulv7260.
Патрик

1
Если он по-прежнему неактивен, убедитесь, что ваш веб-проект имеет конфигурацию сборки, которая соответствует имени конфигурации решения, и убедитесь, что она выбрана.
jmatthias 05

45

Как мы работаем с PublishProfiles, для меня ответ был правой кнопкой мыши соответствующий pubxmlфайл (находится в папке проекта Propertiesвложенной PublishProfiles) , а затем выберите Add Config Transform. Менеджеры не нужны;).


Это решение работает для меня намного лучше, так как я хочу добавить только это преобразование, и ничего больше. Новая активная конфигурация решения влияет на все проекты в решении, что в моем случае не актуально. Благодарность!
Бен

Отлично. Работает в моем старом проекте веб-форм, который я сейчас редактирую в Visual Studio 2015. Мне нравится. Спасибо.
bkwdesign

5
Протестировано и работает над VS 2015. Однако я все еще не могу понять, почему «Добавить преобразование конфигурации» неактивно
Иллидан

20

В моем случае в Visual Studio 2015, когда я создавал новое решение на основе шаблона проекта, Add Config Transform был выделен серым цветом, но по другой причине:

Щелчок по «Показать все файлы» показал, что файлы уже были там - только скрытые. Следовательно, кнопка была неактивна (потому что нет необходимости добавлять их, так как они уже есть).

  1. Щелкните значок «Показать все файлы»:
    введите описание изображения здесь

  2. Теперь вы можете развернуть "Web.config":
    введите описание изображения здесь

  3. Дважды щелкните любой из файлов преобразования ( Web.Debug.configили Web.Release.config), чтобы открыть и отредактировать его.

Примечания:

  • Я не хотел добавлять дополнительную конфигурацию, просто использовал отладку и выпуск . Если вы создаете его, выберите его, а файл преобразования еще не существует, тогда пункт контекстного меню « Добавить преобразование конфигурации» будет активен и не выделен серым цветом.

  • Если вы хотите создать дополнительные файлы преобразования конфигурации , имейте в виду, что в Visual Studio преобразования конфигурации коррелируют с конфигурациями. Чтобы добавить еще одно преобразование, вам нужно сначала добавить новую конфигурацию. Чтобы добавить еще один, сделайте следующее: Через диспетчер конфигурации (раскрывающееся меню, где вы можете выбрать «Отладка» или «Выпуск») сначала добавьте новую конфигурацию, например myNewConfig. Затем выберите myNewConfig. Теперь выберите Web.config в обозревателе решений, щелкните правой кнопкой мыши и выберите в контекстном меню «Добавить преобразование конфигурации» - он создаст Web.myNewConfig.config. Как только оно появится, контекстное меню снова станет серым, потому что VS допускает только одно преобразование для каждой конфигурации.


Это была ситуация и для меня. Я хотел, чтобы файлы преобразования конфигурации оставались видимыми, поэтому я закомментировал их <DependentUpon>Web.config</DependentUpon>в файле проекта. Преобразования по-прежнему работают должным образом.
Итан

Как я могу добавить новые преобразования конфигурации?
Reshma

@Reshma - в Visual Studio преобразования конфигурации соотносятся с конфигурациями. Через диспетчер конфигурации (раскрывающийся список, в котором можно выбрать «Отладка» или «Выпуск») сначала добавьте новую конфигурацию, например myNewConfig. Затем выберите myNewConfig. Теперь выберите Web.config, щелкните правой кнопкой мыши и выберите в контекстном меню «Добавить преобразование конфигурации» - он создаст Web.myNewConfig.config.
Мэтт

Я сделал это, Мэтт, и смог добавить один файл конфигурации, но я пытаюсь добавить другой файл конфигурации, и теперь снова «добавить преобразование конфигурации» неактивно. Я также создал новый файл конфигурации для следующего файла конфигурации
Решма

1
@Reshma - это правильно, потому что у вас может быть только один для каждой конфигурации. Чтобы получить еще один, добавьте еще одну конфигурацию, скажем, myNewConfig2. Затем выберите myNewConfig2 и попробуйте еще раз. На этот раз он не должен быть серым - выберите его. Примечание. Он станет серым, как только появится файл конфигурации для этой конфигурации.
Мэтт

1

Чтобы это заработало, мне пришлось добавить новые группы свойств в мой файл csproj.

Добавить преобразование конфигурации было выделено серым цветом.

Я добавил следующий XML-код в свой csproj и перезагрузил проект. затем стало доступно Добавить преобразование конфигурации. после выбора были добавлены мои дополнительные преобразования

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'IAT_CMCD|AnyCPU'">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'UAT_CM|AnyCPU'">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>

1

Я решил это, осознав две вещи:

  1. Есть конфигурация уровня решения и есть конфигурации уровня проекта . Файл web.MyConfigName.config создается на основе конфигураций на уровне проекта .
  2. Кажется, что диспетчер конфигураций Visual Studio 2017 определяет, какие конфигурации следует добавить из (скрытой) папки obj. Удаление папки obj для проекта и перестройка обновят проект с добавленными вами конфигурациями.

Чтобы сделать доступным параметр «добавить преобразование конфигурации», выполните следующие действия:

  1. Убедитесь, что вы включили отображение скрытых файлов.
  2. Откройте диспетчер конфигурации для Решения
  3. Выберите соответствующую конфигурацию решения , затем выберите в раскрывающемся списке рядом с вашим проектом.<New..> или <Edit..>добавьте, удалите или отредактируйте те проекта, которые вы хотите.
  4. Удалите папку obj в вашем проекте. Восстановить. Убедитесь, что вы сохранили изменения в файлах проекта и решения. Я также перезапустил визуальную студию, почему бы и нет. Убедитесь, что вы видите все свои конфигурации проекта в виде папок в папке obj.
  5. Щелкните правой кнопкой мыши web.config и добавьте преобразование конфигурации.

Надеюсь, это кому-то поможет. :)


1

Как включить опцию «Добавить преобразование конфигурации». Пожалуйста, выполните следующие шаги. Шаг 1. Перейдите к настройке решения (ниже группы). Перейдите к настройке решения (ниже группы)

Шаг 2: нажмите "Диспетчер конфигурации". Нажмите " Диспетчер конфигурации".

Шаг 3. Выберите «Создать» в окне конфигурации активного решения. Выберите «Создать» в окне конфигурации активного решения.

Шаг 4: Теперь дайте вашему новому элементу осмысленное имя, такое как Производство / Подготовка, и выберите настройку копирования в опции «Выпуск». Убедитесь, что вы установили флажок, если он не установлен по умолчанию, и нажмите OK. Теперь дайте своему новому элементу осмысленное имя, например Производство / Подготовка.

Шаг 5: Вернитесь в обозреватель решений и щелкните правой кнопкой мыши файл Web.Config. Добавление преобразования конфигурации теперь включено

Привет! Добавление преобразования конфигурации теперь включено. :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.