Установщик WiX: можем ли мы добавить новый элемент в web.config, используя патч, если для него задано значение NeverOverwrite = yes в его первоначальной версии MSI? - PullRequest
1 голос
/ 20 января 2020

Я работаю над веб-приложением. файл Web.config имеет значение NeverOverwrite (= yes) при первоначальной установке. Теперь мне нужно добавить DBproviderfactories, как показано ниже. Могу ли я добавить весь этот блок, используя XmlFile в patch.msp? Я не хочу писать пользовательские действия. Все, что мне нужно, это добавить этот блок в web.config. Любое предложение здесь приветствуется.

<system.data>
<DbProviderFactories>
  <!-- Remove in case this is already defined in machine.config -->      
  <remove invariant="Oracle.ManagedDataAccess.Client" />
  <add name="Oracle Data Provider for .NET" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>

1 Ответ

0 голосов
/ 20 января 2020

Образец : Возможно, попробуйте это: https://github.com/glytzhkof/all/blob/master/WiXUpdateXmlFile.zip

  • Ниже приводится суть это - пожалуйста, используйте образец выше для тестирования. Разметка ниже приведена только для иллюстрации.
  • Установите для файла XML значение постоянное и никогда не перезаписывать .
  • См. Встроенные инструкции в образце выше для тестирования.
  • Проверьте, что происходит при удалении - эта разметка удалит добавленные записи.

      <!-- Set app.config permanent and never overwrite to yes -->
      <Component Feature="ProductFeature" NeverOverwrite="yes" Permanent="yes">
        <File Source="app.config" />
      </Component>
    
      <!-- The XML update -->
    
      <!-- Use a NEW GUID here, do not go live with this one -->
      <Component Id="XmlFileUpdate" Guid="{00000000-0000-0000-0000-7405EED51B57}" Feature='ProductFeature'>
    
        <!--Create New Element-->
        <util:XmlFile Id='XmlSettings1' File='[INSTALLFOLDER]app.config' Action='createElement' Name='MyConfig' ElementPath='//configuration' Sequence='1' />
    
        <!--Set New Value-->
        <util:XmlFile Id='XmlSettings2' File='[INSTALLFOLDER]app.config' Action='setValue' Name='newVersion' Value='6.6.8' ElementPath='//configuration/MyConfig' Sequence='2' />
    
        <!--Set New Value-->
        <util:XmlFile Id='XmlSettings3' File='[INSTALLFOLDER]app.config' Action='setValue' Name='Server' Value='Pusevov' ElementPath='//configuration/MyConfig' Sequence='3' />
    
        <!--Update Existing Value, Existing Element-->
        <util:XmlFile Id='XmlSettings4' File='[INSTALLFOLDER]app.config'
          Action='setValue' Name='newVersion' Value='7.7.7' ElementPath='//configuration/ExistingConfig/bindingRedirect' Sequence='4' />
    
        <CreateFolder />
      </Component>
    
    </Directory>
    


Ссылка :

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...