Pergunta

Enquanto usando um terceiro dll eu estava recebendo a seguinte exceção:

exePath deve ser especificado quando não estiver sendo executado dentro de um stand alone exe

com o rastreamento seguinte

Do sistema.De configuração.ConfigurationManager.OpenExeConfigurationImpl(ConfigurationFileMap fileMap, Boolean isMachine, ConfigurationUserLevel userLevel, Cadeia exePath).

A razão que eu encontrei foi que ele estava olhando para o app.config e eu tinha fornecido os detalhes na web.config.A minha pergunta é:por que razão o sistema.configuração de diferenciar entre web.configuração e aplicativo.config?Quaisquer pensamentos?

Foi útil?

Solução

Executáveis:

Vários .NET executáveis podem viver no mesmo diretório.Como não podem existir dois arquivos com o mesmo nome e no mesmo diretório, os aplicativos devem usar nomes diferentes para seus arquivos de configuração principal.O applicationName.exe.config regime resolve isso.

Aplicações Web / sites:

.NET aplicações web são compilados para DLLs, e web sites são geralmente compilados just-in-time.Portanto, não é "o ponto de entrada principal" nestes tipos de projetos.É possível criar um projeto da web, onde cada página é compilado para a sua própria montagem.Qual é o principal de montagem?Que a montagem deve se temos o nome do arquivo de configuração depois?

Felizmente, apenas um projeto da web pode ser hospedada a partir de um único diretório, portanto, apenas um arquivo principal de configuração vai viver aqui.Isso permite que o ficheiro de configuração principal nome a ser escolhido pela convenção, e que o nome do arquivo acontece para ser web.config.

Outras dicas

web.config é apenas para o seu site e aplicativos da Web. Ele permanece fixo, o IE não muda de nome; é sempre chamado web.config.

app.config é para aplicações que não sejam da Web - Winforms, WPF, NT Services etc. Isso será renomeado para YourApplicationName.exe.config Quando você constrói seu projeto. Você nunca encontrará um app.config Por esse nome, no diretório de um aplicativo (ou, se o fizer, ele não será usado).

Por que A Microsoft escolhe usar dois tipos diferentes de nomes - eu não sei - pergunte à Microsoft.

Então, basicamente, você basicamente precisa saber com o que está lidando e fornecer as informações no local correto.

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