Asp.net 配置文件XDT转换插入正在跳过子项
我在进行配置转换时遇到问题,无法在nuget package安装中添加应用程序设置,其中元素Asp.net 配置文件XDT转换插入正在跳过子项,asp.net,xml,web-config,nuget,transformation,Asp.net,Xml,Web Config,Nuget,Transformation,我在进行配置转换时遇到问题,无法在nuget package安装中添加应用程序设置,其中元素appSetting可能存在,也可能不存在 我希望发生什么: appSetting元素不存在 插入appSetting元素及其子元素 appSetting元素存在 如果缺少,请插入子项 我只让一个或另一个工作,但不是两个场合 web.config.install.xdt 例1 web.config之前 appSettings元素在转换之前不存在 web.config之后 例2 we
appSetting
可能存在,也可能不存在
我希望发生什么:
元素不存在appSetting
- 插入
元素及其子元素appSetting
- 插入
元素存在appSetting
- 如果缺少,请插入子项
例1
web.config之前
appSettings
元素在转换之前不存在
web.config之后
例2
web.config之前
appSettings
element在转换前显示
web.config之后
示例2中没有发生任何事情,因为
appSettings
元素已经存在,我希望它仍然对其子元素求值并插入那些不存在的元素,但它们似乎被忽略了。属性xdt:Transform
是否还有其他值可以使用,或者是否有其他方法可以解决这个问题?我很久以前也遇到过类似的问题。我应用的解决方法是在XDT文件中有两个带有
的条目,一个用于检查它是否不存在,如果是,则继续插入它。另一个是当
元素已经存在时的场景。以下是帮助您解决问题的简短片段:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings xdt:Transform="InsertIfMissing">
</appSettings>
<appSettings>
<add key="Swagger.Contact.Name" value="Some Name" xdt:Transform="InsertIfMissing" />
<add key="Swagger.Contact.Email" value="some@email.address" xdt:Transform="InsertIfMissing" />
</appSettings>
</configuration>
让我知道这是否对您有效。我考虑过这一点,但没有尝试,我会在有时间时这样做,因为我改为进行XML转换,其中文件的名称类似于
web.config.transform
。但是,它似乎插入了重复的条目,因此如果效果良好,我将改为这样做。:)从所做的有限测试来看,它似乎有效。:)