Итак, мне наконец действительно нужно что-то сделать с Web.config, который не поддерживается системой NuGet Web.config.transform.
И, потратив 2 часа на поиск документов, я понял, что нет слов о том, происходит ли Install.ps1 до или после применения Web.config.transform.
Я использовал для определения файла Web.config.transform следующим образом:
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="resizer" type="ImageResizer.ResizerSection"/>
</configSections>
</configuration>
Вот новый - атрибут requirePermission="false"
необходим для поддержки Medium Trust.
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="resizer" type="ImageResizer.ResizerSection" requirePermission="false"/>
</configSections>
</configuration>
Если я выпущу новую версию Web.config.transform, это приведет к сбою в их проекте ASP.NET, так как будет два элемента section:
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="resizer" type="ImageResizer.ResizerSection" />
<section name="resizer" type="ImageResizer.ResizerSection" requirePermission="false"/>
</configSections>
</configuration>
Если Install.ps1 происходит до Web.config.transform, я могу просто удалить все совпадения до configuration/configSections/section[@name='resizer']
. Если это произойдет после , тогда мне нужно выбрать один из дубликатов для удаления.
Это довольно простая проблема, но на интернет-форуме пока нет ответа, и я надеюсь опубликовать ее, чтобы облегчить жизнь следующему Наггеттеру.