2010-06-02 11 views
5

का उपयोग कर एक्सएमएल टिप्पणियों को हटाएं हम अपने विकास सर्वर पर हमारे तैनाती को संभालने के लिए टीम बिल्ड का उपयोग कर रहे हैं, और जब इसे बदल दिया गया है तो हमें हमारी वेब कॉन्फ़िगरेशन से टिप्पणियां हटाने की आवश्यकता है। क्या किसी को पता है कि परिवर्तन का उपयोग कर वेब कॉन्फ़िगरेशन फ़ाइल से <!-- --> टिप्पणी पंक्तियों को कैसे निकालना है?विजुअल स्टूडियो 2010 वेब कॉन्फ़िगरेशन ट्रांसफ़ॉर्मेशन

उत्तर

3

मुझे एक उत्तर मिला है। ऐसा लगता है कि यह विजुअल स्टूडियो/टीम बिल्ड में एक्सडीटी ट्रांसफ़ॉर्मेशन इंजन में एक ज्ञात बग है। मार्च में यह बग रिपोर्ट किया गया था, इसलिए कोई फर्क नहीं पड़ता कि यह कब तय किया जाएगा।

Here's the link

संपादित करें: यह लिंक वास्तव में मूल प्रश्न से संबंधित नहीं है। हमने अंततः यह पाया कि अंतर्निर्मित वेब कॉन्फ़िगरेशन रूपांतरणों के साथ यह संभव नहीं था। इसलिए हमने टिप्पणियों को पट्टी करने के लिए एक कंसोल एप्लिकेशन लिखना समाप्त कर दिया, और रूपांतरित फ़ाइल को सही तरीके से प्रारूपित किया।

+0

उस बग में टिप्पणियों को हटाने के साथ कुछ भी नहीं दिखता है। –

+0

http://sedodream.com/2010/09/09/ExtendingXMLWebconfigConfigTransformation.aspx में वर्णित परिवर्तनों को विस्तारित करने की संभावना है। शायद, इसका इस्तेमाल टिप्पणियों को हटाने के लिए भी किया जा सकता है। –

2

यहां मेरा कार्य है। आप एक सहायक वर्ग में जोड़ सकते हैं:

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

आप छोटे वर्गों आप टिप्पणी निकालना चाहते हैं, तो आप का उपयोग करने के लिए एक को बदलने की जगह तैयार हो सकता है।

आधार web.config फ़ाइल:

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

web.release.config transfrom (टिप्पणी के बिना जगह सामग्री): अंतिम प्रकाशित 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> 

परिणाम:

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

आप इस दृष्टिकोण का उपयोग करके आधार से ट्रांसफॉर्म फ़ाइल में अपनी कॉन्फ़िगरेशन की एक बहुत सारी प्रतिलिपि बना सकते हैं लेकिन यह एपी हो सकता है छोटे मामलों में मालिकाना ...

मेरे मामले में मैं अपने आधार पर नियमों को फिर से लिखना नहीं चाहता, लेकिन मैंने अन्य देवताओं को अधिक जानकारी के लिए रूपांतरित करने के लिए कहने के लिए एक टिप्पणी दी, लेकिन मुझे अंतिम टिप्पणी में यह टिप्पणी नहीं चाहिए संस्करण।

संबंधित मुद्दे