Comment configurer web.config à « debug = false » via MSBuild Extension Pack?
-
12-10-2019 - |
Question
J'ai une demande de service WCF et le web.config est en mode de débogage (debug = true):
<compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
Je voudrais que ensemble pour "debug = false" via MSBuild Extension Pack (version 3.5.8.0), de sorte que la version publiée est toujours automatiquement en mode non-debug.
Il est évident que je dois utiliser le xmlFile classe , mais il ne fait rien.
Mon fichier de construction ressemble à ceci:
<Target Name="Test">
<MSBuild.ExtensionPack.Xml.XmlFile TaskAction="UpdateAttribute" File="$(MSBuildProjectDirectory)\$(BuildDir)\ServiceClient\web.config" XPath="/configuration/system.web/compilation[@name='debug']" InnerText="false"/>
</Target>
Quand je lance le script de compilation, je ne vois ceci:
Test:
XmlFile: C:\MyProject\Build\ServiceClient\web.config
Update Attribute: /configuration/system.web/compilation[@name='debug']. Value:
Pas d'erreur, pas d'avertissement ... rien.
Je peux voir que MSBuild a trouvé le web.config et a fait quelque chose avec elle, parce que « Date de modification » dans l'explorateur est réglé à ce moment, ce qui n'a pas été le cas avant que je courais le script. Mais il n'y a pas de changement visible dans le fichier. J'ai utilisé un outil de comparaison pour comparer les versions de fichiers avant et après MSBuild, et ils sont identiques.
J'ai aussi essayé de mettre Key
et Value
au lieu de InnerText
, mais cela ne l'aide soit.
Toute idée de ce que je fais mal?
La solution
Essayez ceci:
<Target Name="Test">
<MSBuild.ExtensionPack.Xml.XmlFile TaskAction="UpdateAttribute" File="web.config" XPath="/configuration/system.web/compilation" Key="debug" Value="false" />
</Target>
J'utilise la version pack d'extension 3.5.8.0