Para que servem os arquivos Web.Debug.config e Web.Release.Config?
111
Acabei de atualizar para o Visual Studio 2010 e MVC 2.0 e percebi que o Web.config tem dois arquivos adicionais anexados a ele. Esses arquivos são usados para especificar configurações específicas de depuração e liberação, para que você não atravesse o Web.config principal?
Faz sentido colocar uma string de conexão no arquivo Web.config raiz se eu tiver um local e um remoto na depuração e liberar Web.configs respectivamente?
É o novo recurso de transformação Web.config do Visual Studio 2010. Mais informações aqui .
Editar:
Esses arquivos são usados para especificar configurações específicas de depuração e liberação, para que você não atravesse o web.config principal?
Não está limitado a três arquivos, você pode (em teoria) ter tantos arquivos quantos ambientes. O Web.config de "nível superior" fornece um modelo de sua configuração da web. Os arquivos sob ele fornecem valores de substituição específicos para aquele ambiente (por exemplo, se você tiver strings de conexão diferentes para local / estágio / teste / qualquer coisa).
Faz sentido colocar uma string de conexão no arquivo web.config raiz se eu tiver um local e remoto no debug e liberar web.configs respectivamente.
Só faria sentido se não fosse mudar entre os ambientes. Parece que no seu caso sim, no seu caso não, não faria sentido deixá-lo no Web.config.
Esse recurso está incompleto, mesmo 4 anos depois! Ele só funciona ao implantar em pacotes azure / publicação. Aqui está um tópico interessante: forums.asp.net/t/1532038.aspx
Existem duas maneiras de automatizar o processo de alteração das configurações do arquivo Web.config: transformações Web.config e parâmetros do Web Deploy. Um arquivo de transformação Web.config contém marcação XML que especifica como alterar o arquivo Web.config quando ele é implantado.
Você pode especificar mudanças diferentes para configurações de construção específicas e para perfis de publicação específicos. As configurações de compilação padrão são Depurar e Liberar, e você pode criar configurações de compilação personalizadas. Um perfil de publicação normalmente corresponde a um ambiente de destino.
Caso alguém esteja interessado, aqui está algo que escrevi para ter uma string de conexão dinâmica por ambiente. Eu queria implantar o código em qualquer ambiente (Dev, Test, Pre-Prod, Prod ...) sem ter que me preocupar em alterar as strings de conexão. Não consegui encontrar uma boa maneira de fazer isso com o Asp.Net MVC 4, então criei minha própria maneira de contar com um arquivo de propriedades por ambiente.
Pode haver uma solução melhor, eu venho de uma experiência em Wicket / Java e recentemente comecei a desenvolver com MVC 4, então, é possível que exista uma solução melhor. Mas aqui está um link para minha pergunta e resposta para uma string de conexão dinâmica:
Isso era algo muito necessário no VS. Infelizmente, parece haver um problema com a implementação. Por exemplo, considere este cenário (VS.2010 Ultimate, todos SP):
Web.Config
Sem seção connectionStrings
Membro Pleno Usuário / Função / etc. Configuração do provedor usando connectionStringName = "test"
Web.Release.Config
Sem configuração de associação (já especificada no web.config principal)
seção connectionStrings incluindo o CS chamado "teste"
Web.Debug.Config
Sem configuração de associação (já especificada no web.config principal)
seção connectionStrings incluindo o CS chamado "teste"
Ao executar o aplicativo dá o seguinte erro:
O nome da conexão 'teste' não foi encontrado na configuração dos aplicativos ou a string de conexão está vazia.
Em outras palavras, como os elementos da string de conexão estão nos arquivos do designer Release / Debug e são usados pelos elementos de configuração no arquivo principal (Web.config), não é possível resolvê-lo.
Para ser justo, se você tiver uma string de conexão nomeada testem seus arquivos de configuração de depuração e versão, ela realmente deve estar no web.config principal com as seções apropriadas modeladas. No estado em que se encontra, você está duplicando o código, algo que o modelo deve resolver para você.
R0MANARMY
3
-1: Este post muito antigo foi uma interpretação totalmente errada de como usar as transformações de configuração da web. 1 Na verdade não é uma resposta (apenas uma reclamação incorreta) e 2 não é uma simples fusão de elementos como está implícito aqui. Você deve ter xsltcomandos de substituição explícitos . Parabéns por conseguir 5 votos positivos para algo que aumenta a confusão sobre esses arquivos de transformação :)
Esses são arquivos de transformações Web.config. De ASP.NET Web Deployment usando Visual Studio: Web.config File Transformations :
fonte
Caso alguém esteja interessado, aqui está algo que escrevi para ter uma string de conexão dinâmica por ambiente. Eu queria implantar o código em qualquer ambiente (Dev, Test, Pre-Prod, Prod ...) sem ter que me preocupar em alterar as strings de conexão. Não consegui encontrar uma boa maneira de fazer isso com o Asp.Net MVC 4, então criei minha própria maneira de contar com um arquivo de propriedades por ambiente.
Pode haver uma solução melhor, eu venho de uma experiência em Wicket / Java e recentemente comecei a desenvolver com MVC 4, então, é possível que exista uma solução melhor. Mas aqui está um link para minha pergunta e resposta para uma string de conexão dinâmica:
String de conexão dinâmica Asp.net MVC 4
fonte
Isso era algo muito necessário no VS. Infelizmente, parece haver um problema com a implementação. Por exemplo, considere este cenário (VS.2010 Ultimate, todos SP):
Web.Config
Web.Release.Config
Web.Debug.Config
Ao executar o aplicativo dá o seguinte erro:
Em outras palavras, como os elementos da string de conexão estão nos arquivos do designer Release / Debug e são usados pelos elementos de configuração no arquivo principal (Web.config), não é possível resolvê-lo.
fonte
test
em seus arquivos de configuração de depuração e versão, ela realmente deve estar no web.config principal com as seções apropriadas modeladas. No estado em que se encontra, você está duplicando o código, algo que o modelo deve resolver para você.xslt
comandos de substituição explícitos . Parabéns por conseguir 5 votos positivos para algo que aumenta a confusão sobre esses arquivos de transformação :)