2010-09-30 14 views
18

Para mi molestia, Visual Studio 2010 agregó archivos App.config a todos mis proyectos .EXE cuando cambié el objetivo de .NET Framework 3.5 a .NET Framework 4.0. Así que mi compilación automatizada se rompió hasta que revisé esos nuevos archivos en.¿Se requiere app.config en proyectos de .NET 4.0 C#?

¿Hay alguna razón en particular por la que no puedo simplemente eliminar estos archivos App.config? ¿O Visual Studio va a seguir agregándolos a mis proyectos?

Me abstendré de despotricar sobre una herramienta que agrega archivos inútiles a mis proyectos. . .

Aclaración:

entiendo lo que es para app.config. Lo que no entiendo es por qué Visual Studio 2010 agregaría un archivo app.config a un proyecto existente cuando cambie el proyecto a destino .NET 4.0 en lugar de .NET 3.5. Mi aplicación no requiere nada de app.config para poder ejecutarse, por lo que mi única conclusión razonable sería que Visual Studio por alguna razón necesita la aplicación.config para compilar, o alguien decidió que ellos saben mejor que yo y mi aplicación debe tener una app.config aunque no la quiera.

Oops ... yo despotricé.

cualquier aclaración:

La conversión de un proyecto de Visual Studio 2008 a Visual Studio 2010 no es el problema. Es cuando cambio el objetivo de .NET Framework 3.5 a .NET Framework 4.0 que el app.config se agrega al proyecto. El app.config contiene esto:

<configuration> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
</configuration> 

Cuando cambio de nuevo para apuntar .NET Framework 3.5, el archivo app.config se modifica como sigue:

<supportedRuntime version="v2.0.50727"/> 

Creo ver lo que' Estoy tratando de hacerlo, pero agregar ese archivo app.config automáticamente fue una muy mala idea.

Respuesta

16

La única vez que conozco ese app.config es requerido en un proyecto .NET 4 es si hace referencia a un CLR-2.0, conjunto de modo mixto. En ese caso, debe agregar useLegacyV2RuntimeActivationPolicy = "true" en el elemento de inicio, o obtendrá errores en tiempo de ejecución.

Sin embargo, la herramienta de conversión VS no detecta esto y agrega un archivo app.config de manera predeterminada que realmente no es necesario. Si puede ejecutar después de la conversión, es probable que esto no sea un problema para usted.

De lo contrario, puede eliminarlo (a menos que, por supuesto, lo esté utilizando para otros fines).

+2

Gracias: "... y agrega un archivo app.config por defecto que realmente no es necesario". Grrr. –

5

El archivo app.config no es necesario. Las aplicaciones funcionarán bien sin ellas.

EDITAR

Reed señaló que hay un caso en que esto no es cierto que la pena señalar

Hay una situación en la que se requiere - si su proyecto hace referencia a un CLR 2.0 mixto modo de ensamblaje, debe tener un archivo app.config para ejecutar

+0

¿Alguna idea de por qué VS 2010 tan útilmente agrega uno a un proyecto convertido? –

+1

Existe una situación en la que se requiere: si su proyecto hace referencia a un ensamblado de modo mixto CLR 2.0, debe tener un archivo app.config para ejecutar. –

+0

@Reed, interesante. No lo sabía Actualizaré mi respuesta. – JaredPar

2

Probablemente haya alguna configuración que deba agregarse en el archivo de configuración en el conve Si crea un nuevo proyecto, no obtendrá un app.config automáticamente.

Debería comprobar qué contiene para determinar si hay algo necesario.

+0

El punto es que no había app.config en mi proyecto y funcionaba muy bien. Por razones desconocidas, VS 2010 agregó un app.config cuando convertí el proyecto. Entonces no había ningún ajuste que necesitara ser cambiado. –

+0

Desafortunadamente, la herramienta de conversión siempre agrega esto, ya sea que sea o no necesario. –

Cuestiones relacionadas