Estoy intentando hacer que las transformaciones web.config funcionen como se describe here. Hemos utilizado este método en otros proyectos y funciona sin problemas, pero no en este nuevo proyecto.web.config transformar de web.template.xml no funciona
Aquí es lo que he intentado sin éxito las pruebas
- Cambio de nombre de archivo wpp.targets en caso de que me dieron el nombre del proyecto equivocado. Sé que el actual que estoy usando funciona, ya que es el único que causa que web.config sea reconstruido desde web.template.xml. Esta transformación funciona. Solo las plantillas secundarias no funcionan.
- intentado con xdt: Localizador = "partido (nombre)"
- Probado .config extensión vs .xml, nuestros otros proyectos en los que trabaja este uso .xml
- gestor de configuración se establece para utilizar la configuración de "Prueba" para el proyecto en el que estoy trabajando
- web.template.Test.xml ha xdt: Transform = "Reemplazar" para la sección quiero reemplazar
- web.template.xml tiene el marcador de posición
- intentado quitar la sección "CopyWebTemplateConfig" de wpp.targets como se sugiere en la pregunta de la pila vinculada a continuación. Nuestros otros proyectos tienen esto y la sección "PropertyGroup" ha comentado y he probado ambas combinaciones.
He leído a través del enlace de arriba varias veces y esta pila relacionada question, pero no puedo ver cuál es el problema.
Nota La transformación de publicación funciona de alguna manera. Crea un archivo web.template.xml que contiene los valores de web.template.Test.xml, pero no crea un archivo web.config.xml como lo indica wpp.targets. Así que esto es más un problema para lograr que funcione la transformación de construcción.
¿Alguien tiene una idea de lo que falta?
wpp.targets
<?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.xml"
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.template.$(Configuration).xml"/>
<TransformXml Source="web.template.xml"
Transform="web.template.$(Configuration).xml"
Destination="web.config" />
</Target>
<!-- Exclude the config template files from the created package -->
<Target Name="ExcludeCustomConfigTransformFiles" BeforeTargets="ExcludeFilesFromPackage">
<ItemGroup>
<ExcludeFromPackageFiles Include="web.template.xml;web.template.*.xml"/>
</ItemGroup>
<Message Text="ExcludeFromPackageFiles: @(ExcludeFromPackageFiles)" Importance="high"/>
</Target>
</Project>
web.template.xml
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=152368
-->
<configuration>
<configSections>
<sectionGroup name="TestSettings"></sectionGroup>
....
</configSections>
....
<TestSettings>
</TestSettings>
....
</configuration>
web.template.Test.xml
<?xml version="1.0"?>
<!-- For more information on using transformations
see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<TestSettings xdt:Transform="Replace">
...
</TestSettings>
</configuration>
salida MSBuild
Target "UpdateWebConfigBeforeRun: (TargetId:143)" in file "C:\...\Project.wpp.targets" from project "C:\...\Project.csproj" (target "PrepareForRun" depends on it):
Task "Message" (TaskId:93)
Configuration: Test: Web.template.Test.xml (TaskId:93)
Done executing task "Message". (TaskId:93)
Task "TransformXml" (TaskId:94)
Transforming Source File: Web.template.xml (TaskId:94)
Applying Transform File: Web.template.Test.xml (TaskId:94)
Executing Replace (transform line 5, 18) (TaskId:94)
on /configuration/TestSettings (TaskId:94)
Applying to 'TestSettings' element (source line 121, 4) (TaskId:94)
Replaced 'TestSettings' element (TaskId:94)
Done executing Replace (TaskId:94)
Output File: web.config (TaskId:94)
Transformation succeeded (TaskId:94)
Done executing task "TransformXml". (TaskId:94)
Done building target "UpdateWebConfigBeforeRun" in project "Project.csproj".: (TargetId:143)
¿Puede enviarme un proyecto de muestra que no funciona? Mi correo electrónico es sayedha [at] {MicrosoftDOTcom}. –