2009-01-13 14 views
7

Tengo una aplicación VB6 que llama a un ensamblado .NET, que hace referencia a la configuración del archivo app.config. De forma predeterminada, .NET busca un archivo de configuración con el nombre de la aplicación VB6. ¿Cómo puedo redirigirlo para usar un nombre de archivo de configuración diferente? Esto debe convertirse en el archivo de configuración predeterminado para que, p. La configuración de WCF se lee de ella.Cambiar el nombre del archivo de configuración de la aplicación .NET

+0

Dado que ya existe un sistema que define el archivo de configuración "predeterminado", ¿qué intenta hacer que deba cambiarlo? –

+0

No quiero que se nombre después de la aplicación VB6. Tengo varios de estos y me gustaría evitar tener una copia del archivo de configuración para cada uno, ya que la configuración no es realmente específica para cada aplicación, sino para el ensamblado de .NET. –

+2

En ese caso, probablemente no necesite utilizar App.config para resolver su problema, ya que su propósito es la configuración por aplicación. Si se supone que las configuraciones son las mismas para el ensamblaje independientemente de la aplicación, ¿no son solo esos valores los que están codificados? –

Respuesta

7

No puede cambiarlo. Cada instancia de AppDomain tiene un app.config fijo que se configura a través de una instancia AppDomainSetup cuando se crea un nuevo dominio de aplicación. Aunque puede obtener la información de configuración a través del AppDomain.SetupInformation, en este momento se ha convertido en lectura.

Dado esto, una opción puede ser crear un nuevo dominio de aplicación desde su función Principal y configurar el dominio para usar el app.config que necesite.

+1

Gracias, eso es lo que hice al final. La aplicación principal (.NET) establece las variables de entorno APPDOMAIN_MANAGER_TYPE y APPDOMAIN_MANAGER_ASM para hacer que se use un AppDomainManager personalizado, lo que anula InitializeNewDomain para establecer la propiedad AppDomainSetup.ConfigurationFile para que apunte al archivo .exe.config compartido. ¡Fácil cuando sabes cómo! –

7

puede forzar la aplicación para leer un archivo de configuración particular usando

System.Configuration.ConfigurationManager.OpenExeConfiguration(PATH_TO_CONFIG); 
+0

Gracias. Necesito que se convierta en el archivo app.config "predeterminado" para que, p. La configuración de WCF se lee de ella. Actualizaré la pregunta para ser más específico. –

0

considerar la posibilidad de la configuración de un objeto serializado XML.

9

AppDomain.CurrentDomain.SetData ("APP_CONFIG_FILE", @configFile);

+1

más sobre esto aquí: http://weblogs.asp.net/israelio/archive/2005/01/10/349825.aspx – russau

Cuestiones relacionadas