使用自定义Nuget包更改当前web.config

时间:2016-03-27 18:27:42

标签: c# .net nuget nuget-package

我是创建自定义nuget包的新手。我使用了NuGet Package Explorer并将新的类库dll添加到我的本地nuget存储库中。现在我可以将它安装到我的新项目中。

但有时我需要安装我的自定义包并更改当前项目的web.config文件。添加新密钥或部分。这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以通过web.config.transform file或使用XML document transform (XDT)修改web.config。

对于.transform,您可以创建一个web.config.transform文件并放入NuGet包的Content目录中。 web.config.transform文件包含与web.config文件相同的文件,当您安装NuGet包时,它将应用于web.config文件。

XDT功能更强大,可以对web.config文件进行更复杂的修改,例如插入或删除现有元素。您可以在NuGet包的Content目录中创建web.config.install.xdt和(可选)web.config.uninstall.xdt文件。然后在安装或卸载NuGet包时运行这些转换。从NuGet文档中获取的示例如下所示。

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <system.webServer>
        <modules>
            <add name="MyNuModule" type="Sample.MyNuModule" xdt:Transform="Insert" />
        </modules>
    </system.webServer>
</configuration>

完整的XDT语法记录在MDSN website