Pergunta

Nossa solução é um conjunto de serviços de janelas e web que podem ser executados em uma máquina ou são totalmente distribuídos.

Precisamos de apenas uma peça de configuração para unir tudo isso (é um endpoint de RabbitMQ, mas isso não é importante).

Alguns de nossos serviços precisam ser executados como aplicativos de 32 bits, alguns dos serviços da Web serão executados em pools de aplicativos de 32 bits, por isso temos uma mistura de processos em execução como 64 e 32 bits, geralmente na mesma máquina.

Por preferência, colocamos nossa única peça de configuração no .NET Machine.config. Minha tarefa atual é escrever uma interface do usuário de Win Forms Bare para atualizar o Machine.config com a nossa peça de configuração.

No entanto, por padrão, abrindo a configuração da máquina com

config = System.Configuration.ConfigurationManager.OpenMachineConfiguration();

Abre o máquina.config associado à edição da interface do usuário em execução, no entanto Preciso atualizar arquivos de configuração de máquina de 32 e 64 bits com o mesmo valor.

Existe um método conhecido - e seguro - para fazer isso?

Meu primeiro instinto é ter um aplicativo de console que a interface do usuário possa chamar para fazer a atualização real e ter 2 sabores diferentes, um 32 e um de 64 bits.

Ou há uma maneira melhor de fazer isto?

Foi útil?

Solução

Eu acho que você deve ser capaz de usar o OpenMappedMachineConfiguration Método no ConfigurationManager para abrir um arquivo de configuração de máquina específico.

var path = "path to desired machine config";
ConfigurationFileMap cfm = new ConfigurationFileMap(path);
Configuration config = ConfigurationManager.OpenMappedMachineConfiguration(cfm);

Mais informações sobre o método podem ser encontradas aqui:http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.openmappedmachineconfiguration(v=vs.110).aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top