2010-06-02 12 views

cevap

3

Bir cevap buldum. Görünüşe göre bu, Visual Studio/Team Build'ta XDT dönüşüm motorunda bilinen bir hatadır. Bu hata Mart ayında bildirildi, bu ne zaman düzeltileceğine dair hiçbir fikre sahip değil.

Here's the link

Düzenleme: Bu bağlantı aslında asıl soruya ilgili değildir. Sonunda yerleşik web yapılandırma dönüşümleri ile mümkün olmadığını düşündük. Bu yüzden yorumları yorumlamak ve dönüştürülmüş dosyayı düzgün bir şekilde biçimlendirmek için bir konsol uygulaması yazdık.

+0

Bu hatanın, yorumların kaldırılmasıyla ilgili hiçbir şey yapmadığı görülüyor. –

+0

http://sedodream.com/2010/09/09/ExtendingXMLWebconfigConfigTransformation.aspx adresinde açıklandığı gibi dönüştürmeleri genişletme olanağı vardır. Belki de yorumları kaldırmak için kullanılabilir. –

2

İşte benim işlevim. Bir yardımcı sınıfına ekleyebilirsiniz: Eğer yorumları kaldırmak isteyen küçük bölümler varsa

public static string RemoveComments(
     string xmlString, 
     int indention, 
     bool preserveWhiteSpace) 
    { 
     XmlDocument xDoc = new XmlDocument(); 
     xDoc.PreserveWhitespace = preserveWhiteSpace; 
     xDoc.LoadXml(xmlString); 
     XmlNodeList list = xDoc.SelectNodes("//comment()"); 

     foreach (XmlNode node in list) 
     { 
      node.ParentNode.RemoveChild(node); 
     } 

     string xml; 
     using (StringWriter sw = new StringWriter()) 
     { 
      using (XmlTextWriter xtw = new XmlTextWriter(sw)) 
      { 
       if (indention > 0) 
       { 
        xtw.IndentChar = ' '; 
        xtw.Indentation = indention; 
        xtw.Formatting = System.Xml.Formatting.Indented; 
       } 

       xDoc.WriteContentTo(xtw); 
       xtw.Close(); 
       sw.Close(); 
      } 
      xml = sw.ToString(); 
     } 

     return xml; 
    } 
1

bir dönüşüm replace kullanmak istekli olabilir dan.

baz web.config dosyası:

<system.webServer> 
    <rewrite> 
     <rules> 
      <clear /> 
      <!-- See transforming configs to see values inserted for builds --> 
     </rules> 
    </rewrite> 

web.release.config Transfrom (yorum OLMADAN değiştirilmesi içeriği): Nihai yayınlanan config

<system.webServer> 
<rewrite > 
    <rules xdt:Transform="Replace"> 
    <clear/> 
    <rule name="Redirect to https" stopProcessing="true" > 
     <match url="(.*)" /> 
     <conditions> 
     <add input="{HTTPS}" pattern="off" ignoreCase="true" /> 
     </conditions> 
     <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" /> 
    </rule> 
    </rules> 
</rewrite> 

sonucu:

<system.webServer> 
<rewrite> 
    <rules> 
    <clear /> 
    <rule name="Redirect to https" stopProcessing="true"> 
     <match url="(.*)" /> 
     <conditions> 
     <add input="{HTTPS}" pattern="off" ignoreCase="true" /> 
     </conditions> 
     <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" /> 
    </rule> 
    </rules> 
</rewrite> 

Bu yaklaşımı kullanarak, yapılandırmanızın bir LOT'unu tabandan dönüştürme dosyasına kopyalayabilirsiniz. küçük vakalarda ...

Benim durumumda, tablomda yeniden kurallar yazmak istemiyorum, ama diğer devlerin daha fazla bilgi için dönüşümlere bakmasını söylemek için bir yorum yazdım, ama bu yorumu finalde istemiyorum sürümü.