5

Al crear un complemento de Visual Studio, ¿cómo puede utilizar un app.config para el complemento. Si agrego uno al proyecto y lo despliego, cuando se ejecuta el complemento y programáticamente intento acceder a él a través de ConfigurationManager.AppSettings, no está recogiendo el archivo de configuración para el complemento.
¿Estoy haciendo algo mal o hay otro medio para acceder a la configuración de archivo para un complemento?¿Hay algún archivo de tipo de configuración para el complemento de Visual Studio?

Respuesta

7

ConfigurationManager.AppSettings recoge el archivo de configuración para el AppDomain en el que está cargado. Ese archivo de configuración es típicamente el asociado con el ejecutable del punto de entrada. En su caso, no controla el ejecutable del punto de entrada ni el AppDomain que ejecuta, por lo que no puede usar ConfigurationManager.AppSettings.

La pregunta básicamente se reduce a "¿Cómo puedo tener un archivo de configuración asociado con una DLL?" (C# Dll config file). Necesita hacer dos cosas:

  1. Agregue un elemento del archivo de configuración de la aplicación a su proyecto y asegúrese de implementarlo en la misma carpeta que su archivo DLL.
  2. acceso al archivo de configuración desde el archivo DLL utilizando código como este:

    string pluginAssemblyPath = Assembly.GetExecutingAssembly().Location; 
    Configuration configuration = ConfigurationManager.OpenExeConfiguration(pluginAssemblyPath); 
    string someValue = configuration.AppSettings.Settings["SomeKey"].Value; 
    

que sin duda trabajar para DLL regulares que no se cargan mediante copia de sombra. No estoy seguro de cómo VS carga sus complementos. Si tiene problemas, hágamelo saber y puedo publicar una solución para las DLL que se cargan a través de la instantánea.

Cuestiones relacionadas