2010-12-01 31 views
12

Estoy tratando de recuperar valores de mi archivo App.config que está almacenado en mi directorio de trabajo, sin embargo, cuando ejecuto el programa, devuelve null. Estoy muy confundido acerca de por qué esto es así, y he revisado el código muchas veces para intentar detectar un error.ConfigurationManager return null en lugar de valores de cadena

Aquí es mi App.config código del archivo:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
    <add key="provider" value="System.Data.SqlClient" /> 
    </appSettings> 
    <connectionStrings> 
    <add name="connection" connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=Autos;Integrated Security=True;Pooling=False" /> 
    </connectionStrings> 
</configuration> 

Aquí está mi código C#:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Configuration; 
using System.Data; 
using System.Data.Common; 

namespace DataProviderFun 
{ 
    class Program 
    { 
    static void Main(string[] args) 
    { 
     string p = ConfigurationManager.AppSettings["provider"]; 
     string c = ConfigurationManager.ConnectionStrings["connection"].ConnectionString; 

     ... 

Cuando ejecuto el código, p = null yc = null.

He hace referencia a System.Configuration.dll.

+2

Es el app.config siendo desplegado correctamente con su ejecutable .. IE:? En el directorio de ejecución ¿existe un 'ApplicationName. archivo exe.config'? –

+1

App.Config es la plantilla utilizada. El archivo de configuración real va a ser el archivo "Program.Exe.Config". Esto debería hacerse cuando compilas el proyecto. –

+2

¿Alguna vez ha agregado la configuración a un proyecto DLL? – Aliostad

Respuesta

15

¿Se aseguró de que el archivo de configuración esté colocado correctamente en el directorio desde el que ejecuta la aplicación? ¿Hay realmente un archivo llamado < nombre de la aplicación > .exe.config en ese directorio?

Solo estoy adivinando aquí - ¿tal vez ha agregado el archivo App.Config en un proyecto diferente, luego su proyecto de ensamblado de exe ...?

Por cierto, he copiado tu código y App.Config como es para un proyecto limpio, y este código funcionó para mí. Así que miraría en la dirección del archivo de configuración en sí y no en el código. El código está muy bien ...

Espero que esto ayude,

Ran

+0

Pongo el archivo App.config en mi carpeta bin \ Debug; sin embargo, esta carpeta y ninguna de las demás carpetas asociadas a este proyecto contienen un archivo .exe.config. Este es un ejecutable, no una biblioteca. Intenté limpiar y reconstruir el proyecto pero este archivo no aparece. – TheBoss

+7

No debe copiar manualmente el archivo App.config. Se supone que se debe copiar y renombrar automáticamente en tiempo de compilación. ¿Tal vez acabas de agregar un archivo llamado App.config a tu proyecto, en lugar de agregar un elemento de "configuración de la aplicación"? Puede intentar volver a agregarlo al proyecto ejecutable. – Ran

+0

** "Tal vez acaba de agregar un archivo llamado App.config a su proyecto, en lugar de agregar un elemento de" configuración de la aplicación "** es la respuesta correcta. Gracias Ran. – TheBoss

Cuestiones relacionadas