No Visual Studio 2010 e superior, agora você pode aplicar uma transformação ao seu web.config, dependendo da configuração da compilação.
Ao criar um web.config, você pode expandir o arquivo no Solution Explorer e verá dois arquivos:
- Web.Debug.Config
- Web.Release.Config
Eles contêm código de transformação que pode ser usado para
- Alterar a cadeia de conexão
- Remova o rastreio e as configurações de depuração
- Registrar páginas de erro
Consulte Sintaxe de transformação Web.config para implantação de projetos de aplicativos Web no MSDN para obter mais informações.
Também é possível, embora oficialmente sem suporte, aplicar o mesmo tipo de transformação a um app.config
arquivo de aplicativo não da Web . Veja o blog de Phil Bolduc sobre como modificar seu arquivo de projeto para adicionar uma nova tarefa ao msbuild.
Essa é uma solicitação longa e persistente no Visual Studio Uservoice .
Uma extensão para o Visual Studio 2010 e posterior, " SlowCheetah " , está disponível para cuidar da criação de transformação para qualquer arquivo de configuração. A partir do Visual Studio 2017.3, o SlowCheetah foi integrado ao IDE e a base de código está sendo gerenciada pela Microsoft. Esta nova versão também suporta a transformação JSON.
Vigilante Pierre-Alain
fonte
Web.Debug.Config
eWeb.Release.Config
, pode ser necessário clicar com o botão direito do mouseWeb.Config
e clicarAdd Config Transforms
.A
<appSettings>
tag no web.config suporta um atributo de arquivo que carrega uma configuração externa com seu próprio conjunto de chaves / valores. Eles substituirão as configurações que você tiver no seu web.config ou as adicionarão.Tiramos vantagem disso modificando nosso web.config no momento da instalação com um atributo de arquivo que corresponde ao ambiente em que o site está sendo instalado. Fazemos isso com um interruptor no nosso instalador.
por exemplo;
Nota:
fonte
restartOnExternalChanges
que tratará esses arquivos como se fossem web.configs. Fonte: learnable.com/books/…Você já olhou para projetos de implantação na web?
http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&displaylang=en
Também existe uma versão para o VS2005, se você não estiver em 2008.
fonte
Eu também gostaria de saber. Isso ajuda a isolar o problema para mim
Eu mantenho um connectionStrings.config e um "{host} connectionStrings.config". Ainda é um problema, mas se você fizer isso para seções diferentes nos dois ambientes, poderá implantar e versão o mesmo web.config.
(E eu não uso VS, btw.)
fonte
Eu uso um Script de Construção NAnt para implantar nos meus diferentes ambientes. Eu tenho que modificar meus arquivos de configuração via XPath, dependendo de onde eles estão sendo implantados, e então os coloca automaticamente nesse ambiente usando o Beyond Compare .
Demora um ou dois minutos para configurar, mas você só precisa fazê-lo uma vez. Em seguida, os arquivos em lote assumem o controle enquanto eu vou pegar outra xícara de café. :)
Aqui está um artigo que eu encontrei.
fonte
Em um projeto em que tínhamos 4 ambientes (desenvolvimento, teste, preparação e produção), desenvolvemos um sistema em que o aplicativo selecionava a configuração apropriada com base no nome da máquina na qual foi implantado.
Isso funcionou para nós porque:
Funcionou bem para nós nesse caso, mas provavelmente não funcionaria em todos os lugares.
fonte
O editor de configuração da Biblioteca da empresa pode ajudá-lo a fazer isso. Permite criar um arquivo de configuração base e, em seguida, deltas para cada ambiente. Você pode mesclar a configuração base e o delta para criar um web.config específico do ambiente. Dê uma olhada nas informações aqui, que mostram você melhor do que eu.
fonte
Você também pode torná-lo uma etapa pós-compilação. Configure uma nova configuração que seja "Implantar", além de Depurar e liberar, e depois faça a cópia da etapa pós-compilação no web.config correto.
Usamos compilações automatizadas para todos os nossos projetos e, com elas, o script de compilação atualiza o arquivo web.config para apontar para o local correto. Mas isso não ajudará se você estiver fazendo tudo do VS.
fonte
Esse é um dos grandes benefícios do uso do machine.config. No meu último trabalho, tivemos ambientes de desenvolvimento, teste e produção. Poderíamos usar o machine.config para coisas como cadeias de conexão (para a máquina SQL dev / test / prod apropriada).
Isso pode não ser uma solução para você se você não tiver acesso à máquina de produção real (como se estivesse usando uma empresa de hospedagem em um host compartilhado).
fonte
Você também pode usar a extensão "Configuration Transform", que funciona da mesma forma que "SlowCheetah",
fonte