如何让NuGet在已存在的情况下忽略配置转换值?

时间:2014-12-29 21:05:37

标签: visual-studio-2012 nuget

我有一个类库包需要将以下内容合并到现有的web / app.config文件中:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="MyCompany.MyLibrary" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <applicationSettings>
    <MyCompany.MyLibrary.Settings>
      <setting name="Environment" serializeAs="String">
        <value></value>
      </setting>
    </MyCompany.MyLibrary.Settings>
  </applicationSettings>
</configuration>

我是使用.transform文件完成的,安装得很好。

用户(使用NuGet 2.8.3和VS 2012)能够轻松编辑&#34;环境&#34;正确配置库。

但是,当我发布下一个版本时,用户在使用NuGet更新其解决方案时会遇到问题。

更新清除了他们现有的&#34;环境&#34;用户配置文件中的值。

我尝试使用.install.xdt文件并执行:

<setting name="Environment" serializeAs="String" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)">

那也没有用。有没有办法告诉NuGet忽略&#34;环境&#34;如果它已经存在,那么它不会清除现有值吗?

我不想将忽略逻辑应用于所有 MyCompany.MyLibrary.Settings ,以防将来的更新添加或删除新设置。

0 个答案:

没有答案