1

ある web.config から別の web.config への書き換えルールのコピーを自動化する ac# スクリプトを作成する予定です。お客様ごとに複数の web.config があり、変更が必要な場合があるいくつかの一般的な書き換えルールがあります。一般的な書き換えルールには、それらを一般的なルール (顧客固有ではない) として識別する一意のプレフィックスがあります。

C# を使用して、ある web.config から別の web.config にルールをコピーできるかどうか疑問に思っています。1 つの構成から書き換え URL/一致 URL を読み取って、別の構成に書き込むだけでは、常にうまくいくとは限りません。たとえば、条件を追加する必要がある場合もあります。

これを行う方法はありますか?可能な限り自動化したいと考えています。私は C# が得意ではありませんが、1 つのファイルからルール全体を読み取って、別のファイルに貼り付けることができると思いますか? それとも、XMLReader を介して両方の web.config ファイルを解析し、ルールをコピーする方がよいでしょうか?

4

1 に答える 1

0

ServerManager クラスの代わりに XML を使用することで、自分でそれを理解することができました。これは私が望むことをほとんど行います。

XmlDocument doc1 = new XmlDocument();
doc1.Load(@"web.new.config");

XmlDocument doc2 = new XmlDocument();
doc2.Load(@"web.config");

XmlNode rules = doc2.SelectSingleNode("/configuration/system.webServer/rewrite/rules");
XmlNodeList baserules = doc2.SelectNodes("/configuration/system.webServer/rewrite/rules/rule[contains(@name, 'GenericPrefix')]");

XmlNodeList ruleList = doc1.SelectNodes("/configuration/system.webServer/rewrite/rules/rule[contains(@name, 'GenericPrefix')]");

foreach(XmlNode baseruleOld in baserules)
{
    baseruleOld.ParentNode.RemoveChild(baseruleOld);
}

foreach(XmlNode rule in ruleList)
{
    XmlNode tocopynode = doc2.ImportNode(rule, true);
    rules.AppendChild(tocopynode);
}

doc2.Save("web.config");
于 2013-07-16T10:57:47.967 に答える