ASP.Net Web Application Add Config Transform esmaecido

89

Eu adicionei um projeto de aplicativo da web ASP.Net existente à minha solução. Além das configurações padrão de depuração e liberação, esta solução também possui duas configurações personalizadas, SAT e UAT. Para o novo aplicativo da web, clicar com o botão direito do mouse em Web.Config mostra o menu de contexto, mas a opção para "Adicionar transformação de configuração" está esmaecida.

Estou perdida. O novo projeto é um aplicativo da web. O Gerenciador de configuração não mostra as duas configurações personalizadas para este projeto, mas mostra para os outros projetos. O projeto parece ter as entradas corretas no arquivo de solução.

Pensamentos?

paulv7260
fonte

Respostas:

117

Você deve primeiro definir as configurações no Configuration Manager. Para ter certeza de que está abrindo o Gerenciador de Configuração, você pode acessá-lo em: Build-> Gerenciador de Configuração

Na lista suspensa Configuração da solução ativa , selecione <New...>. Depois de adicionar, você poderá "Adicionar transformação de configuração".

Não edite seu arquivo de solução diretamente. Isso só vai causar dores de cabeça.

Jeremy
fonte
6
Duh. Eu tinha tentado isso antes, mas não consegui desmarcar a caixa "criar", então estava falhando como uma "duplicata". Assim que desmarquei a caixa "criar", funcionou.
paulv7260
@maplemale O mesmo aqui, opção ainda cinza
Anders Lindén
Sinto muito, não me lembro como fiz isso funcionar. Posso ter hackeado o arquivo sln diretamente, ao contrário da resposta de Jeremy, às vezes é apenas a única opção viável com o tempo. Não tive esse problema desde a atualização para o VS2015.
maplemale
2
As configurações da solução e do projeto são diferentes! Você precisa criar uma configuração em um determinado projeto antes de usar essa transformação. Marque "Criar novas configurações de projeto" para criar a configuração em todos os projetos de uma vez, ou faça isso individualmente, como fez @ paulv7260.
Patrick
1
Se ainda estiver esmaecido, certifique-se de que seu projeto da web tenha uma configuração de construção que corresponda ao nome da configuração da solução e certifique-se de que esteja selecionado.
jmatthias
45

Como trabalhamos com PublishProfiles, para mim a resposta foi clicar com o botão direito do mouse no pubxmlarquivo relevante (encontrado na Propertiessubpasta da pasta do projeto PublishProfiles) e selecionar Add Config Transform. Não são necessários gerentes;).

Paul Siersma
fonte
Essa solução funciona muito melhor para mim, pois eu só quero essa transformação adicionada, nada mais. A nova configuração da solução ativa tem impacto em todos os projetos da solução, o que não é relevante no meu caso. Obrigado!
Ben
Perfeito. Funciona em meu antigo projeto de Web Forms que agora estou editando no Visual Studio 2015. Adorei. Obrigado.
bkwdesign
5
Testado e trabalhando no VS 2015. No entanto, ainda não consigo entender por que "Add Config Transform" está esmaecido
Illidan
20

No meu caso, no Visual Studio 2015, quando criei uma nova solução baseada em um modelo de projeto, Add Config Transform estava esmaecido - mas por um motivo diferente:

Clicar em "Mostrar todos os arquivos" revelou que os arquivos já estavam lá - apenas ocultos. Portanto, o botão ficou acinzentado (porque não há necessidade de adicioná-los, pois já estão lá).

  1. Clique no ícone "Mostrar todos os arquivos":
    insira a descrição da imagem aqui

  2. Agora você pode expandir "Web.config":
    insira a descrição da imagem aqui

  3. Clique duas vezes em qualquer um dos arquivos de transformação ( Web.Debug.configou Web.Release.config) para abri-lo e editá-lo.

Notas:

  • Eu não queria adicionar uma configuração adicional, apenas use Debug and Release . Se você criar um, selecione-o e o arquivo de transformação ainda não existir, o item do menu de contexto Adicionar transformação de configuração estará ativo e não esmaecido.

  • Se você deseja criar arquivos de transformação de configuração adicionais , lembre-se de que, no Visual Studio, as transformações de configuração são correlacionadas às configurações. Para adicionar outra transformação, você precisa adicionar uma nova configuração primeiro. Para adicionar outro, faça o seguinte: Através do gerenciador de configuração (a lista suspensa onde você pode selecionar Depurar ou Liberar), adicione uma nova configuração primeiro, por exemplo, myNewConfig. Em seguida, selecione myNewConfig. Agora selecione Web.config no Solution Explorer, clique com o botão direito e selecione no menu de contexto "Add Config Transform" - irá criar Web.myNewConfig.config. Depois de existir, o menu de contexto ficará esmaecido novamente, porque o VS permite apenas uma transformação por configuração.

Matt
fonte
Essa era a situação para mim também. Eu queria que os arquivos de transformação de configuração permanecessem visíveis, então comentei <DependentUpon>Web.config</DependentUpon>no arquivo de projeto. As transformações ainda funcionam conforme o esperado.
Ethan
Como posso adicionar novas transformações de configuração?
Reshma
@Reshma - No Visual Studio, as transformações de configuração são correlacionadas com as configurações. Por meio do gerenciador de configuração (a lista suspensa onde você pode selecionar Depurar ou Liberar), adicione uma nova configuração primeiro, por exemplo, myNewConfig. Em seguida, selecione myNewConfig. Agora selecione Web.config, clique com o botão direito e selecione no menu de contexto "Adicionar Transformação de Configuração" - ele criará Web.myNewConfig.config.
Matt
Fiz isso Matt e consegui adicionar um arquivo de configuração, mas estou tentando adicionar outro arquivo de configuração e agora novamente a opção "Adicionar Transformação de Configuração" está esmaecida. Eu também criei um novo arquivo de configuração para o próximo arquivo de configuração
Reshma
1
@Reshma - Correto, porque você só pode ter um por configuração. Para obter outro, adicione uma configuração extra, digamos, myNewConfig2. Em seguida, selecione myNewConfig2 e tente novamente. Desta vez, não deve ser cinza - selecione-o. Nota: Ele ficará cinza assim que existir um arquivo de configuração para essa configuração.
Matt
2

Resolvi isso percebendo duas coisas:

  1. Há uma configuração de nível de solução e há configurações de nível de projeto . O web.MyConfigName.config é criado com base nas configurações de nível de projeto .
  2. Parece que o Visual Studio 2017 Configuration Manager baseia quais configurações adicionar da pasta obj (oculta). A exclusão da pasta obj para o projeto e a reconstrução atualizará o projeto com as configurações que você adicionou.

Para disponibilizar a opção "adicionar transformação de configuração", siga estas etapas:

  1. Certifique-se de ter habilitado Mostrar Arquivos Ocultos
  2. Abra o gerenciador de configuração para a solução
  3. Escolha a configuração da solução relevante e , na lista suspensa ao lado do seu projeto, selecione <New..>ou <Edit..>e adicione, remova ou edite as configurações do projeto que deseja.
  4. Exclua a pasta obj em seu projeto. Reconstruir. Certifique-se de salvar as alterações em seus arquivos de projeto e solução. Eu também reiniciei o visual studio, porque não. Verifique se você vê todas as configurações do seu projeto como pastas em sua pasta obj.
  5. Clique com o botão direito em web.config e adicione sua transformação de configuração.

Espero que ajude alguém. :)

Emanuel Lindström
fonte
1

Para fazer isso funcionar, eu tive que adicionar novos grupos de propriedades ao meu arquivo csproj.

Adicionar transformação de configuração estava esmaecido.

Eu adicionei o seguinte XML ao meu csproj e recarreguei o projeto. então Add Config Transform estava disponível. uma vez selecionado, minhas transformações de adição foram adicionadas

<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>
JGilmartin
fonte
1

Como habilitar a opção "Add Config Transform". Siga as etapas abaixo. Etapa 1: Vá para a configuração da solução (equipe abaixo) Vá para a configuração da solução (equipe abaixo)

Passo 2: Clique em Configuration Manager Clique em Configuration Manager

Etapa 3: Selecione Novo na janela de configuração da solução ativa Selecione Novo na janela de configuração da solução ativa

Passo 4: Agora dê um nome significativo ao seu novo item, como Produção / Preparação e selecione a configuração de cópia na opção "Lançamento". Certifique-se de ter marcado a caixa de seleção se não estiver marcada por padrão e clique em OK. Agora dê um nome significativo ao seu novo item, como Produção / Preparação

Passo 5: Agora volte para o explorador de soluções e clique com o botão direito no arquivo Web.Config. Adicionar configuração de transformação está habilitado agora

Hola! Adicionar Config Transform está habilitado agora. :)

nitin27verma
fonte