2015-01-08 10 views
5

Ich versuche, eine web.config-Transformation einzurichten, um einige Werte zu ändern. Ich bin mit diesem Beispiel gegeben durch Octopus Deploy:Web.Config Transform keine Werte ändern

http://docs.octopusdeploy.com/display/OD/Configuration+files

ultra-abgespeckte Version von web.config:

<?xml version="1.0" ?> 
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0"> 
    </compilation> 
    </system.web> 
</configuration> 

der Transformation:

<?xml version="1.0" ?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <system.web> 
    <compilation xdt:Transform="RemoveAttributes(debug)" /> 
    </system.web> 
</configuration> 

die Ausgabe:

<?xml version="1.0"?> 
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0"> 
    </compilation> 
    </system.web> 
</configuration> 

Ich benutze dieses Werkzeug, um die Transformation in der Vorschau: https://webconfigtransformationtester.apphb.com/

, wie Sie es noch nichts zu tun hat sehen können. Ich habe mir viele Beispiele angesehen, aber offensichtlich fehlt mir etwas. Jede Hilfe würde sehr geschätzt werden.

(ich habe dies ohne Glück auch versucht):

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <system.web> 
     <compilation debug="false" xdt:Transform="Replace"> 
     </compilation > 
    </system.web> 
</configuration> 
+3

Sind Sie sicher über den Namespace des XML-Eingabe? Wenn Sie es von "xmlns =" ​​http://schemas.microsoft.com/.NetConfiguration/v2.0 "zu' xmlns: xdt = "http://schemas.microsoft.com/.NetConfiguration/v2.0 ändern "' Das Debug-Attribut wird aus der Ausgabe entfernt. –

+0

danke Matthias, das wars ... ich habe mir ungefähr 10 verschiedene Quellen angeschaut, und keiner hat erwähnt, dass ich das machen muss. Ich werde das als Antwort markieren, wenn Sie es als solches einreichen möchten. –

+0

Was wirklich frustrierend ist, ist, dass ich Visual Studio verwendet habe, um die Transformationsdateien automatisch zu generieren. Man könnte meinen, es wäre schlau genug, diesen Teil in die ursprüngliche web.config einzufügen, wenn dies für die Transformation erforderlich wäre. –

Antwort

3

Die Werke zu verwandeln, wie auf der genannten Online-Preview-Tool für web.config soll Transformationen https://webconfigtransformationtester.apphb.com/, wenn Sie den Namensraum des web.config ändern Datei von

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 

zu

<configuration xmlns:xdt="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 

Wh verwandeln en diese

<?xml version="1.0" ?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <system.web> 
    <compilation xdt:Transform="RemoveAttributes(debug)" /> 
    </system.web> 
</configuration> 

auf den eingestellten web.config angelegt wird

<?xml version="1.0" ?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0"> 
    </compilation> 
    </system.web> 
</configuration> 

das debug Attribut aus dem Ergebnis entfernt wird:

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 
    <system.web> 
    <compilation targetFramework="4.0"> 
    </compilation> 
    </system.web> 
</configuration> 

Update: Wie in den Kommentaren erwähnt Die Konfiguration der Datei web.config sollte keinen Namespace enthalten. Stattdessen ist es notwendig, diesen Import

<xdt:Import assembly="AppHarbor.TransformTester" 
      namespace="AppHarbor.TransformTester.Transforms"/> 

in die Transformationsdatei (zumindest, wenn sie mit dem genannten Online-Transformation Tester testen) hinzuzufügen:

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
<xdt:Import assembly="AppHarbor.TransformTester" 
    namespace="AppHarbor.TransformTester.Transforms"/> 
    <system.web> 
    <compilation xdt:Transform="RemoveAttributes(debug)" /> 
    </system.web> 
</configuration> 
+0

Eigentlich sollte die gesamte Namespace-Deklaration aus dem '' Element in der web.config entfernt werden. 'Konfiguration' befindet sich nicht in einem Namespace. –

+0

@JohnSaunders Danke für die Info, fand diese Info hier: http://msdn.microsoft.com/en-us/library/ee248644%28v=vs.100%29.aspx (nicht zu wissen, ob es für die Einstellungen gilt hier benutzt). Die Antwort wurde anhand des hier genannten Beispiels gegeben: http://msdn.microsoft.com/en-us/library/dd465326.aspx –

+0

Sie haben die Beispiele falsch gelesen. Alle Beispiele auf dieser Seite beziehen sich auf _transformation files_, nicht auf web.config-Dateien. –