Как вставить элементы конфигурации, если они еще не существуют во время установки NuGet?

У меня есть проект пакета NuGet, который до сих пор содержал App.config.transform файл. Это использовалось для вставки записей конфигурации, но проблема в том, что записи всегда вставляются в конфигурацию целевого проекта (обычно делает его недействительным из-за новых дубликатов).

Я хотел бы только вставить элементы в цель app.config если они не существуют - то есть, что их положение и name или же key атрибут не существует. Я хотел бы избежать перезаписи или добавления, если их value атрибут изменился.

Я пытаюсь сделать это новое преобразование с помощью app.config.install.xdt файл.

Например, целевые проекты (при первой установке пакета NuGet) не содержат следующее section элемент:

<configuration>
  <configSections>
    <section name="specFlow" type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow" />
  </configSections>
</configuration>

Я хотел бы вставить configSections блок и section Элемент, если они, с уважением, не существуют.

Если configSections блок существует, но не содержит section элемент с name="specFlow" Я бы хотел, чтобы это было добавлено.

Если этот конкретный section элемент существует, но type attributeЗначение было изменено, я не хочу его перезаписывать.

Чтобы попробовать это до сих пор, я использовал различные перестановки xdt:Transform="Insert" атрибутов. Например:

<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <configSections xdt:Transform="Insert">
    <section name="specFlow" type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow" />
  </configSections>
</configuration>

Я попытался положить преобразование на configSections стихия, на человека section элементы и один из каждого и т. д. Ничто не дало желаемого эффекта. Как правило, все, что я получаю, это либо ничего не происходит, либо большая часть файла конфигурации полностью заменяется содержимым файла преобразования.

0 ответов

Другие вопросы по тегам