Visual studio 在Nuget Web.config.install.xdt中插入缺失将替换现有值
我在Web.config.install.xdt中有一个带有以下转换的Nuget包Visual studio 在Nuget Web.config.install.xdt中插入缺失将替换现有值,visual-studio,nuget,Visual Studio,Nuget,我在Web.config.install.xdt中有一个带有以下转换的Nuget包 初始安装后,使用者将条的属性值更改为ie 我的问题是,在包的后续更新中,我想插入默认值,前提是节点foo不存在。使用当前变换时,节点总是被替换回原来的位置 我在xdt:Locator中尝试了以下表达式,以尝试确定节点是否已经存在,但没有任何运气 xdt:Locator="Condition(boolean(//configuration/*[local-name()='foo']))" xdt:Loc
初始安装后,使用者将条的属性值更改为ie
我的问题是,在包的后续更新中,我想插入默认值,前提是节点foo
不存在。使用当前变换时,节点总是被替换回原来的位置
我在xdt:Locator
中尝试了以下表达式,以尝试确定节点是否已经存在,但没有任何运气
xdt:Locator="Condition(boolean(//configuration/*[local-name()='foo']))"
xdt:Locator="XPath(/configuration/foo[1])"
当我在VisualStudio中执行“预览转换”时,这些工作正常,但在更新Nuget包时失败。我想Nuget对这类表达式的支持有限,但我找不到任何关于这个主题的文档
我已经使用Nuget Package Manager 3.5.1996和3.4.4.1321以及VS 2017预览版(26020)在VS 2015.3中进行了测试
有人知道如何解决这个问题吗?根据您的Web.config.install.xdt文件内容,我使用NuGet Package Manager 3.5.1996在Visual Studio 2015.3中进行了测试。如果consum项目中存在foo节点,则更新包时不会替换foo节点
以下步骤是我所做的,我已经用app.config.install.xdt和Web.config.install.xdt测试了这些步骤
创建一个项目(项目a)包含一个Web.config.install.xdt,它的内容与您的相同
将项目打包为NuGet软件包,并将Web.config.install.xdt文件添加到此软件包的内容文件夹中
在另一个包含Web.config文件的项目(项目B)上安装此软件包。foo节点将被添加到Web中,并使用值“something”进行配置
在Web.config中将“something”修改为“OtherValue”并保存
修改项目A中的某些代码,并将其重新打包为版本2.0.0
更新项目B中的包,foo节点值仍然显示为“OtherValue”
请注意,更改foo值后,请保存项目并重新生成,以确保它能够成功生成。根据您的Web.config.install.xdt文件内容,我使用NuGet Package Manager 3.5.1996在Visual Studio 2015.3中进行了测试。如果consum项目中存在foo节点,则更新包时不会替换foo节点
以下步骤是我所做的,我已经用app.config.install.xdt和Web.config.install.xdt测试了这些步骤
创建一个项目(项目a)包含一个Web.config.install.xdt,它的内容与您的相同
将项目打包为NuGet软件包,并将Web.config.install.xdt文件添加到此软件包的内容文件夹中
在另一个包含Web.config文件的项目(项目B)上安装此软件包。foo节点将被添加到Web中,并使用值“something”进行配置
在Web.config中将“something”修改为“OtherValue”并保存
修改项目A中的某些代码,并将其重新打包为版本2.0.0
更新项目B中的包,foo节点值仍然显示为“OtherValue”
请注意,更改foo值后,请保存并重新生成项目,以确保它可以成功生成。请尝试检查.config.uninstall.xdt
文件。升级时,Nuget会删除旧包,然后安装新包。所以,如果您在卸载文件中放入一个删除连接到包的所有节点的代码,您可能会遇到这个问题。尝试检查您的.config.uninstall.xdt
文件。升级时,Nuget会删除旧包,然后安装新包。所以,如果您在卸载文件中放入一个删除所有连接到该包的节点的代码,您可能会遇到这个问题。是自定义包还是默认包?你能在这里分享吗?你是如何更新你的软件包的?与此文档类似:•如果当前Web.config中缺少元素,请插入一部分元素。可用的目标部分是否包含不同的元素?是自定义包还是默认包?你能在这里分享吗?你是如何更新你的软件包的?与此文档类似:•如果当前Web.config中缺少元素,请插入一部分元素。可用的目标部分是否包含不同的元素?@Espen Lønnkvist您是否检查了您的步骤以及是否有任何差异?如果可能,请在此处分享您的步骤,以帮助我们重现您的问题。@Espen Lønnkvist您是否检查了您的步骤以及是否有任何差异?如果可能,请在此处分享您的步骤,以帮助我们重现您的问题。