2015-01-08 19 views
5

web.configトランスフォームを設定して値を変更しようとしています。私はタコの展開によって与えられたこの例を使用しています:Web.Config変換で値が変更されない

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

超スリム化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> 

変換:

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

出力:

<?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> 
あなたはそれが何もしない見ることができるよう https://webconfigtransformationtester.apphb.com/

私は、変換をプレビューするために、このツールを使用しています。私は多くの例を見てきましたが、明らかに何かが欠けています。どんな助けでも大歓迎です。

(私は運でこれをも試してみた):

<?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

ていますか? 'xmlns =" http://schemas.microsoft.com/.NetConfiguration/v2.0 "から' xmlns:xdt = "に変更すると、http://schemas.microsoft.com/.NetConfiguration/v2.0 "'デバッグ '属性は出力から削除されます。 –

+0

マティアス、ありがとうございました...私は約10の異なるリソースを見て、誰も私がそれをしなければならないと言いました。あなたがそのように提出したいと思うなら、それを答えとしてマークします。 –

+0

本当にイライラするのは、Visual Studioを使用してトランスフォームファイルを自動的に生成することです。変換に必要な場合は、元のweb.configにその部分を追加するほどスマートになると思います。 –

答えて

3

あなたはweb.configファイルの名前空間を変更する場合、web.configファイル変換https://webconfigtransformationtester.apphb.com/のために述べたオンラインプレビューツール上で意図したような作品を変換

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

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

へWhのファイルからこのエン

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

debug属性は結果から削除され

<?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> 

調整web.configファイルに適用される変換:コメントで述べたように:

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

更新web.configファイルの設定には、名前空間がまったく存在する必要はありません。代わりに、変換ファイルにこのインポート

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

を追加する必要があります(少なくとも、前述のオンライン変換テスターでテストする場合):あなたは、入力XMLの名前空間わから

<?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

実際、名前空間宣言全体は、web.configの ''要素から削除する必要があります。 'configuration'は名前空間にありません。 –

+0

@JohnSaunders情報をありがとう、ちょうどここにこの情報を見つけた:http://msdn.microsoft.com/en-us/library/ee248644%28v=vs.100%29.aspx(それが設定に当てはまるかどうかわからないここで使用)。回答はここに記載されている例に基づいて与えられました:http://msdn.microsoft.com/en-us/library/dd465326.aspx –

+0

あなたは間違った例を読んでいます。そのページのすべての例は、変換ファイルであり、web.configファイルではありません。 –

関連する問題