Quiero cambiar la ubicación donde mi aplicación busca el archivo app.config.Cómo cambiar la ubicación de app.config
Sé que puedo usar ConfigurationManager.OpenExeConfiguration() para acceder a un archivo de configuración arbitrario; sin embargo, cuando .Net Framework lee el archivo de configuración (para ConnectionStrings o EventSources, por ejemplo), verá la ubicación predeterminada . Quiero cambiar la ubicación, globalmente, para todo el .Net Framework (para mi aplicación, por supuesto).
También sé que puedo usar AppDomainSetup para cambiar la ubicación de la aplicación.config para un nuevo dominio de aplicación. Sin embargo, eso no se aplica al dominio de aplicación principal de la aplicación.
También sé que puedo anular la función Main() y crear un nuevo AppDomain como el anterior y ejecutar mi aplicación en ese nuevo AppDomain. Sin embargo, eso tiene otros efectos secundarios, por ejemplo, Assembly.GetEntryAssembly() devolverá una referencia nula.
Dado que todo lo demás funciona en .Net, espero que haya alguna forma de configurar el entorno de inicio de mi aplicación, a través de un Manifiesto de aplicación, o algo así, pero no he podido encontrar ni un atisbo de espero en esa dirección.
Cualquier puntero sería útil.
David Mullin
Hmmm. En mi prueba de este enfoque (que era diferente al tuyo), GetEntryAssembly devolvió nulo. Pero no hice ExecuteAssembly, encontré el "segundo Main" que había escrito y ejecutado. Probaré tu enfoque y veré si funciona para mí. –
Creo que ExecuteAssembly hace la diferencia. Al menos los Documentos dicen que GetEntryAssembly devuelve el ejecutable, * o * el que pasó a ExecuteAssembly(). –