Dağıtımlarımızı kurulum sunucumuza taşımak için Team Build'i kullanıyoruz ve dönüştürüldüğünde web config'umuzdaki yorumları kaldırmamız gerekiyor. Bir dönüşüm kullanarak web yapılandırma dosyasındaki <!-- -->
yorum satırlarını nasıl kaldıracağını bilen var mı?Visual Studio 2010 Web Config Transformation kullanarak XML yorumlarını kaldır
cevap
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.
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.
İş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;
}
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ü.
Bu hatanın, yorumların kaldırılmasıyla ilgili hiçbir şey yapmadığı görülüyor. –
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. –