¿Cómo puedo fusionar y utilizar Web.debug.config
en Visual Studio 2010 depurador integrado?¿Cómo puedo usar Web.debug.config en el servidor de depurador visual studio incorporado?
Respuesta
Este es un error conocido. Esa característica se puede usar ahora solo como parte del proceso de implementación.
favor Upvote que, si se encuentra con esto también, por lo que este problema se solucionará lo antes posible.
Esto es bastante simple de hacer y, créalo o no, parece que esta es la forma en que VS está diseñado para funcionar.
Agregue las siguientes líneas textualmente justo antes de la etiqueta de cierre del "Proyecto" del archivo .csproj del proyecto que contiene web.config.
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="Transform">
<MakeDir Directories="obj\$(Configuration)" Condition="!Exists('obj\$(Configuration)')" />
<TransformXml Source="Web.Config" Transform="Web.$(Configuration).config" Destination="obj\$(Configuration)\Web.config" StackTrace="true" />
</Target>
Poner las siguientes líneas textualmente al evento posterior a la generación en las propiedades del proyecto del proyecto que contiene el archivo web.config. Haga esto para cada configuración de compilación para la que desee que se ejecuten las transformaciones.
"$(MSBUILDBINPATH)\msbuild" "$(ProjectPath)" /t:Transform /p:Configuration=$(ConfigurationName);Platform=AnyCPU
xcopy "$(ProjectDir)obj\$(ConfigurationName)\Web.Config" "$(ProjectDir)". /F /R /Y
Solo recomendaría agregar comillas dobles alrededor de $ (ProjectDir) y $ (ProjectPath) para evitar errores en caso de que la ruta del proyecto contenga espacios. –
Es mejor usar
. Puedo hacer que las transformaciones funcionen con este enfoque, pero no puedo golpear mis puntos de ruptura Tengo la depuración configurada como verdadera, pero nunca alcanzo el punto de interrupción y aparece el siguiente mensaje: "El punto de interrupción no se activará actualmente. No se han cargado símbolos para este documento".Esto solo ocurre para mis configuraciones personalizadas y funciona bien si configuro mi configuración en "Depurar". ¿Algunas ideas? –
Sé que esto es viejo, pero estoy enfrentando el mismo problema. Tenemos prueba, transferencia configuraciones vivo que sustituyen a los puntos finales, etc. cadenas de conexión de la opción predeterminada Web.config
Sin embargo, yo haría lo siguiente:
- Haga clic derecho en la configuración de transformación deseado (por ejemplo Web .Live.config)
- Haga clic en "Vista previa Transform"
- Copia de todo, desde la derecha (que es como se ve el Web.config con la transformación)
- CTRL + A + CTRL + C
- Abrir el archivo Web.config (por defecto)
- seleccionar todo (Ctrl + A) y pegarlo en (CTRL + V)
- Run
No son muchos los pasos y se realiza con bastante rapidez cuando lo dominas. Espero que esto ayude. :)
Si he entendido correctamente, este es un cambio destructivo en el archivo web.config original. En el contexto de la pregunta, estos pasos deberían realizarse cada vez que se inicia una sesión de depuración. –
No quería actualizar el archivo web.config en mi proyecto, solo el que termina en la carpeta bin así que así es como lo hice.
Agregue lo siguiente al final de .csproj (justo antes de la etiqueta final del proyecto de cierre)
<Target Name="Transform">
<MakeDir Directories="bin" Condition="!Exists('bin')" />
<TransformXml Source="Web.Config" Transform="Web.$(Configuration).config" Destination="bin\$(TargetFileName).config" StackTrace="true" />
</Target>
Luego se agrega el paso de generación siguiente post
"$(MSBUILDBINPATH)\msbuild" "$(ProjectPath)" /t:Transform /p:Configuration=$(ConfigurationName);Platform=AnyCPU
Esto significa que cuando se construye una La transformación se lleva a cabo desde la configuración de depuración/liberación al archivo WebsiteName.Config en el directorio de la bandeja de salida, sin interferir con el web.config principal en el proyecto.
Esto transforma la configuración en el directorio bin, desafortunadamente esta configuración nunca se usa. La configuración cargada es realmente la Web.Config en la carpeta del proyecto, no la del directorio bin. – Mick
Lo he resuelto de una manera más simple, al agregar esto al final del archivo .csproj, justo antes de la etiqueta. Esto es similar a la respuesta de Keitn, con la diferencia de que no usa un evento de compilación posterior.
<Target Name="BeforeBuild">
<TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="Web.config" />
</Target>
Confirmado, funciona. Pero tenga cuidado, modifica la copia local de Web.config. Entonces, si está utilizando transformaciones XSLT como RemoveAttributes, definitivamente se elimina. Funciona bien con SetAttributes –
gracias! este trabajo para mi! – panicoper
Esto hizo exactamente lo que estaba buscando. Simple y directo al grano. No estoy seguro de por qué todas las otras soluciones tienen que ser tan ... complejas. –
@ologesa: Sus necesidades de soluciones de acceso de escritura a la Web.config originales (debes de salida en TFS). La mejor solución es generar directamente el Web.config en la carpeta bin como lo hace keitn. Cuando combinamos de keitn y su solución obtenemos la siguiente:
<Target Name="BeforeBuild">
<Message Text="Transforming Web.config from Web.$(Configuration).config" Importance="high" />
<MakeDir Directories="bin" Condition="!Exists('bin')" />
<TransformXml Source="Web.Config" Transform="Web.$(Configuration).config" Destination="bin\$(TargetFileName).config" StackTrace="true" />
</Target>
Sería bueno, pero como Mick comentó; este archivo no se usa ¿Cómo consigo que la aplicación o IIS usen este archivo de configuración? – HMR
Después de leer muchos mensajes similares y que tienen problemas con los archivos no poder ser sobrescritos o web.config no ser accesible porque es de sólo lectura esto es lo me trabajo para mí:
<Target Name="BeforeBuild" Condition="$(Configuration) == 'MyAltDebugConfiguration'">
<ItemGroup>
<OriginalWebConfig Include="$(ProjectDir)Web.config"/>
<TempWebConfig Include="$(ProjectDir)TempWeb.config"/>
</ItemGroup>
<Exec Command=""$(DevEnvDir)tf.exe" checkout "$(ProjectDir)Web.config"" />
<Copy SourceFiles="@(OriginalWebConfig)" DestinationFiles="@(TempWebConfig)" />
<TransformXml Source="$(ProjectDir)TempWeb.config"
Transform="Web.$(Configuration).config"
Destination="Web.config" />
</Target>
Notas:
Esto funciona como el objetivo BeforeBuild.
Solo quiero que se ejecute bajo una determinada configuración (un entorno de depuración alternativo) y es por eso que tengo la condición. Al implementar a través de la implementación web, el objetivo de publicación se activa y no necesito que este objetivo se ejecute.
No quiero tener que recordar revisar web.config (solo para deshacerlo cuando haya terminado), así que verifico web.config antes de comenzar la transformación. Si no está utilizando TFS, puede eliminar esta línea.
Debido a VS (2010) \ msbuild no quiere dejar de lado el web.config Fuente utilizo un archivo temporal (gracias a este artículo por la info: http://www.diaryofaninja.com/blog/2011/09/14/using-custom-webconfig-transformations-in-msbuild)
He intentado añadir un comando para elimine TempWeb.config pero VS \ msbuild no quiere soltarlo. Puedo vivir con eso ya que no se agrega a TFS.
- 1. ¿Visual Studio 2010 Ultimate Edition incluye un servidor TFS incorporado?
- 2. ¿Cómo redirecciono el resultado del depurador de Visual Studio?
- 3. Depurador de Visual Studio 2010 omitiendo
- 4. ¿Puedo usar mstest.exe sin instalar Visual Studio?
- 5. ¿Puedo usar MVC3 en Visual Studio 2008?
- 6. Salga de un bucle en el depurador de Visual Studio
- 7. ¿Ver matriz en el depurador de Visual Studio?
- 8. visual studio 2008 depurador loco omitiendo!
- 9. ¿Puedo crear una macro de Visual Studio para iniciar un proyecto específico en el depurador?
- 10. ¿Cómo puedo usar flex & bison en Visual Studio 2010?
- 11. Depurador de Visual Studio - Visualización de valores enteros en Hex
- 12. Visual Studio: ¿cómo puedo detener el depurador cuando se modifica una variable miembro?
- 13. Visual Studio: ¿evita que F11 inicie el depurador?
- 14. use .htaccess con el servidor incorporado php5.4
- 15. Pasar argumentos al depurador XSLT de Visual Studio
- 16. Depuración Javascript en Visual Studio (u otro depurador JS)
- 17. ¿Cómo usar el depurador OcaIDE en Eclipse?
- 18. ¿Cómo usar Mercurial de Visual Studio 2010?
- 19. Depurador de Visual Studio C++: ¿Sin volcado hexadecimal?
- 20. Cómo inspeccionar secuencias XML desde el depurador en Visual Studio 2003
- 21. Servidor web incorporado en .NET
- 22. Servidor web incorporado en Python?
- 23. ¿Puedo usar .NET 4.0 beta en Visual Studio 2008?
- 24. ¿Cómo observar los objetos de mapa de bits en el depurador de Visual Studio?
- 25. ¿Cómo puedo reasignar F5 en Visual Studio?
- 26. ¿Puedo usar CodeRush Xpress en Visual Studio 2010?
- 27. ¿Cómo puedo alternar el ajuste de palabras en Visual Studio?
- 28. Web.Debug.config sustitución no procesar
- 29. Usar archivos .mak en Visual Studio 2010
- 30. desenganche un proceso de depurador de Visual Studio
Para el registro esto no es un error, es por diseño. Estos archivos son para paquete/publicación. Pero eso no debería desanimar a nadie a votar el artículo. –
@Sayed Estoy de acuerdo con usted :) – stacker
Bueno, para mí es un error, de lo contrario, ¿cuál es el propósito de una transformación de depuración/liberación en un servidor local? A veces los diseños son erróneos, eso no significa que sea correcto :) –