2010-04-02 13 views
19

Estoy acostumbrado a utilizar proyectos de implementación web. Actualmente estoy desarrollando una nueva aplicación web con VS2010 y quiero tratar de llevarme bien con el nuevo principio de web.config y los problemas de implementación.¿Cómo usar ApplicationSettings en la nueva configuración web.config en VS2010?

¿Cómo puedo reemplazar un entorno sencillo como

<applicationSettings> 
    <NAMESPACE> 
    <setting name="Testenvironment" serializeAs="String"> 
    <value>True</value> 
    </setting> 
    </NAMESPACE> 
</applicationSettings> 

quiero tener este ajuste para tener el valor true en depuración y, en la versión falsa. ¿Cómo deben ser las entradas en Web.Debug.config y Web.Release.Config?

Y por cierto: ¿Hay alguna documentación sobre el nuevo problema web.config? Parece que google no tiene las palabras clave correctas.

Respuesta

13

También podría usar de esta manera; para el entorno prod, por ejemplo.

<applicationSettings xdt:Transform="Replace"> 
    <NAMESPACE> 
    <setting name="Testenvironment" serializeAs="String"> 
    <value>False</value> 
    </setting> 
    </NAMESPACE> 
</applicationSettings> 

Saludos.

+0

Porque aún me quedaba esto por descubrir: una transformación solo se aplica cuando se publica un sitio web/aplicación, no cuando se compila/compila. –

3

Debe copiar esta configuración en ambos archivos de configuración web - Web.Debug.config y Web.Release.config y ponga los atributos de transformación xdt:Transform="SetAttributes" xdt:Locator="Match(name)".

se puede ver este video tutorial - http://chriskoenig.net/index.php/2010/04/08/how-do-i-web-config-transformations-in-vs2010/

Espero que ayude.

+0

Gracias gracias =) – citronas

+0

Me alegro de ayudar :) – Thea

+4

Lo sentimos, este no es la respuesta correcta. "SetAttributes" simplemente establece los atributos. ¡Si desea cambiar la etiqueta de valor, necesita "Reemplazar"! –

45

La mejor forma sería la de hacer lo siguiente:

<applicationSettings> 
    <NAMESPACE> 
    <setting name="Testenvironment" serializeAs="String" xdt:Transform="Replace" xdt:Locator="Match(name)"> 
    <value>True</value> 
    </setting> 
    </NAMESPACE> 
</applicationSettings> 

En lugar de Zubeyir sugerencia en cuanto éste sólo sustituirá a la configuración de specifed en lugar de sustituir la totalidad de la sección applicationSettings.

+1

sí, para ser más específico La sugerencia de Jonathan Stanton es la mejor respuesta porque la respuesta que Zubeyir sugirió reemplazará todas las configuraciones de la aplicación y cuando actualices tu versión de depuración agregando nuevas configuraciones y olvidaste actualizar la versión de lanzamiento y todas las cosas serán reemplazadas por versiones verion de webconfig – Kiarash

1

Aquí hay un enlace con muchos ejemplos sobre este tema: http://msdn.microsoft.com/en-us/library/dd465326.aspx.

Pero parece que hay un problema especialmente con las transformaciones Web.config y las configuraciones de la aplicación: todas las respuestas en esta consulta utilizando xdt-Transform=“Replace” tienen el problema de que introducen espacio en blanco adicional en el Web.config desplegado debido al formato XML. Esto conduce a un comportamiento defectuoso si consume la configuración resultante. Parece que no hay solución. Aquí está mi pregunta sin respuesta sobre este problema: VS 2010 configuration transformation produces unwanted white space during deployment.

Cuestiones relacionadas