visual studio servidor remota puede pudo proyecto porque para obtener net instalado este equipo ejecutar desarrollo depurar depuracion configurar configurado conexion conectar con cadena asp asociar app aplicaciones aplicacion asp.net visual-studio web-config

asp.net - servidor - Utilice la transformación de Visual Studio web.config para la depuración



no se puede conectar con el servidor web de desarrollo configurado visual studio (5)

Andrew está en el camino correcto. Cuando está usando esta función, aquí está cómo fue diseñada para ser utilizada.

web.config Este es el archivo de configuración que los desarrolladores deben usar localmente. Lo ideal sería que esto se estandarice. Por ejemplo, podría usar localhost para cadenas de DB, y lo que no. Debe esforzarse para que esto funcione en máquinas de desarrollo sin cambios.

web.debug.config Esta es la transformación que se aplica cuando publica su aplicación en el entorno de desarrollo de desarrollo. Esto haría cambios en el web.config que son necesarios para el entorno de destino.

web.release.config Esta es la transformación que se aplica cuando publica su aplicación en el entorno de "producción". Obviamente, tendrá que tener cuidado con las contraseñas dependiendo de su aplicación / equipo.

El problema con la transformación del web.config que está ejecutando actualmente es que una transformación puede realizar acciones destructivas para web.config. Por ejemplo, puede eliminar atributos, eliminar elementos, etc.

Posible duplicado:
¿Cómo puedo usar Web.debug.config en el servidor de depurador visual studio incorporado?

Quiero usar la transformación Web.config que funciona bien para publicar también para la depuración.

Cuando publico una aplicación web, Visual Studio transforma automáticamente el Web.config en función de la configuración currenctbuild. ¿Cómo puedo decirle a Visual Studio que haga lo mismo cuando empiece a depurar? En el inicio de depuración, simplemente usa el Web.config predeterminado sin transformación.

¿Alguna idea?


Aunque estoy de acuerdo en que el enfoque más simple suele ser el mejor, puedo imaginar fácilmente una circunstancia en la que durante un período de tiempo desea conectar su IDE a una base de datos de prueba en lugar de su base de datos de desarrollo. Aunque puede especificar las cadenas de conexión de desarrollo en su archivo web.config predeterminado, sería realmente agradable tener un archivo Web.Test.config para que cuando cambie la configuración de compilación a "Prueba", obtenga automáticamente la nueva configuración mientras aún está en su IDE.

La alternativa histórica es comentar un conjunto de cadenas de conexión para otro, pero estas nuevas transformaciones de configuración ofrecen la esperanza de finalmente poner una estaca en el corazón de esa fea práctica. Aunque un archivo predeterminado para desarrollo y una transformación para publicación pueden funcionar la mayor parte del tiempo, agregar un paso posterior a la compilación para transformar el archivo web.config es la respuesta más completa, en mi opinión.


En su configuración de depuración, agregue un paso posterior a la compilación y úselo para reemplazar / transformar su web.config


Podrías simplemente usar el web.config "predeterminado" como tu versión de desarrollo / depuración, y luego el web.release.config por supuesto continuaría siendo la versión de lanzamiento, ya que sus transformaciones se aplican cuando publicas.


OK, entendiendo que web.debug.config y web.release.config son solo para paquetes / publicaciones. He encontrado una forma de habilitar lo que estás tratando de hacer. He escrito un blog sobre esto en http://sedodream.com/2010/10/21/ASPNETWebProjectsWebdebugconfigWebreleaseconfig.aspx . Aquí está el resumen.

Ahora veamos cómo podemos habilitar lo que la pregunta asker quiere hacer.

Para recapitular, cuando construye sobre una configuración particular, quiere que se aplique una transformación específica a web.config . Entonces, obviamente, no desea mantener un archivo web.config porque se sobrescribirá.

Entonces, lo que tenemos que hacer es crear un nuevo archivo web.template.config , que es solo una copia de web.config . A continuación, simplemente elimine web.config con Windows Explorer (no lo elimine con Visual Studio porque no queremos eliminarlo del proyecto).

Nota: Si está usando un proveedor de control de fuente integrado en Visual Studio, entonces probablemente quiera eliminar web.config del control de código fuente.

También con esto no queremos usar web.debug.config o web.release.config porque estos ya tienen un rol bien definido en la web.release.config publicación web, por lo que no queremos molestar. Entonces, en su lugar crearemos dos archivos nuevos, en la misma carpeta que el proyecto y web.template.config , web.dev.debug.config y web.dev.release.config .

La idea es que estas serán las transformaciones aplicadas cuando depure o ejecute su aplicación desde Visual Studio. Ahora tenemos que engancharnos en el proceso de compilación / paquete / publicación para tener todo esto conectado. Con los proyectos de aplicaciones web (WAP) existe un punto de extensibilidad en el que puede crear un archivo de proyecto en la misma carpeta con el nombre {ProjectName}.wpp.targets donde {ProjectName} es el nombre del proyecto. Si este archivo está en el disco en la misma carpeta que el WAP, entonces se importará automáticamente en el archivo del proyecto. Así que he creado este archivo. Y he colocado el siguiente contenido:

<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <!-- Make sure web.config will be there even for package/publish --> <Target Name="CopyWebTemplateConfig" BeforeTargets="Build"> <Copy SourceFiles="web.template.config" DestinationFiles="web.config"/> </Target> <PropertyGroup> <PrepareForRunDependsOn> $(PrepareForRunDependsOn); UpdateWebConfigBeforeRun; </PrepareForRunDependsOn> </PropertyGroup> <!-- This target will run right before you run your app in Visual Studio --> <Target Name="UpdateWebConfigBeforeRun"> <Message Text="Configuration: $(Configuration): web.dev.$(Configuration).config"/> <TransformXml Source="web.template.config" Transform="web.dev.$(Configuration).config" Destination="web.config" /> </Target> <!-- Exclude the config template files from the created package --> <Target Name="ExcludeCustomConfigTransformFiles" BeforeTargets="ExcludeFilesFromPackage"> <ItemGroup> <ExcludeFromPackageFiles Include="web.template.config;web.dev.*.config"/> </ItemGroup> <Message Text="ExcludeFromPackageFiles: @(ExcludeFromPackageFiles)" Importance="high"/> </Target> </Project>

Déjame explicar esto un poco. Creé el destino CopyWebTemplateConfig, que siempre copiará web.template.config a web.config en la compilación, incluso si no está depurando su aplicación en Visual Studio.

Esto es necesario porque todavía necesitamos admitir el paquete / proceso de publicación de Visual Studio. Luego PrepareForRunDependsOn la propiedad PrepareForRunDependsOn para incluir el objetivo UpdateWebConfigBeforeRun . Esta propiedad se utiliza para identificar la lista de objetivos que debe ejecutarse antes de ejecutar cualquier proyecto administrado desde Visual Studio.

En este objetivo, estoy usando la tarea TransformXml para transformar web.template.config , usando el web.dev.***.config correcto. Después de eso, su aplicación se inicia utilizando el web.config correcto según su configuración de compilación. Después de eso, tengo otro objetivo ExcludeCustomConfigTransformsFiles , que ExcludeCustomConfigTransformsFiles en el paquete / proceso de publicación a través del atributo BeforeTargets=”ExcludeFilesFromPackage” . Esto es necesario porque no queremos que estos archivos se incluyan cuando la aplicación está empaquetada o publicada. Entonces eso es todo lo que hay que hacer.

Explicar el proceso de paquete / publicación un poco más para este escenario. Cuando empaque / publica web.debug.config o web.release.config , dependiendo de la configuración de compilación, se seguirá utilizando. Pero, en última instancia, el archivo que está transformando es web.template.config , por lo que es posible que deba ajustarlo en función de lo que tenga en ese archivo. Preguntas / Comentarios?