我试图使用参数.xml进行C#Web项目的Web部署。 如果所有参数都是预定义的,则工作正常。 但是,在我的情况下,需要配置一组相同类型的项目,并且组中的项目数因不同站点而异。
例如,我在 web.config 中有一组项目,如下所示:
<ItemConfiguration>
<items>
<item name="item1" label="1" />
<item name="item2" label="2" />
<item name="item3" label="3" />
</items>
</ItemConfiguration>
我的参数.xml看起来像:
<parameter name="item1" defaultValue="<item name='name' label='label' />">
<parameterEntry kind="XmlFile" scope="obj\Release\Package\PackageTmp\web.config$"
match="/configuration/itemConfiguration/items" />
</parameter>
<parameter name="item2" defaultValue="<item name='name' label='label' />">
<parameterEntry kind="XmlFile" scope="obj\Release\Package\PackageTmp\web.config$"
match="/configuration/itemConfiguration/items" />
</parameter>
<parameter name="item3" defaultValue="<item name='name' label='label' />">
<parameterEntry kind="XmlFile" scope="obj\Release\Package\PackageTmp\web.config$"
match="/configuration/itemConfiguration/items" />
</parameter>
和我的设置参数.xml用于其中一个部署站点:
<?xml version="1.0" encoding="utf-8"?>
<parameters>
...
<setParameter name="item1" value="<item name='book1' label='book 1' />" />
<setParameter name="item2" value="<item name='book2' label='book 2' /> " />
<setParameter name="item3" value="< />" />
</parameters>
上面的配置允许我设置2个项目进行部署。我的问题是,如果我需要配置的不仅仅是参数.xml中定义的项目,比如我想拥有 book1、book2、book3 和 book4,那么我该怎么做?另一个站点可能需要在组中配置 10 个项目。
在部署参数时.xml不能再更改了,只有 SetParameters.xml允许更改,所以我想知道我是否以错误的方式执行此操作或存在限制。
谢谢
也许不是您所期望的答案,因为它不直接处理参数,但我会用另一种更简单、更灵活的方法解决这个问题,恕我直言:
网络.config
<ItemConfiguration>
<items>
<!-- this section to be defined by the environment config -->
</items>
</ItemConfiguration>
web.test.config
<ItemConfiguration>
<items>
<item name="item1" label="1" xdt:Transform="Insert"/>
<item name="item2" label="2" xdt:Transform="Insert"/>
</items>
</ItemConfiguration>
web.integration.config
<ItemConfiguration>
<items>
<item name="item1" label="1" xdt:Transform="Insert"/>
<item name="item4" label="4" xdt:Transform="Insert"/>
<item name="item5" label="5" xdt:Transform="Insert"/>
<item name="item6" label="6" xdt:Transform="Insert"/>
</items>
</ItemConfiguration>
web.production.config
<ItemConfiguration>
<items>
<item name="item1" label="1" xdt:Transform="Insert"/>
<item name="item2" label="2" xdt:Transform="Insert"/>
<item name="item3" label="3" xdt:Transform="Insert"/>
</items>
</ItemConfiguration>
另外不要忘记将定义包含在配置文件中:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
...
</configuration>