У меня есть куча проектов консольных приложений. NET 4.72, которые я создаю, используя VS2017 или VS2019. Все они имеют флаг «Автоматически создавать перенаправления привязки», установленный в разделе приложения свойств csproj. Во всех случаях, кроме одного, при сборке создается большой раздел времени выполнения с кучей перенаправлений сборки. И приложения работают нормально. Даже если в моем app.config уже есть раздел времени выполнения с перенаправлениями сборки вручную, автоматические c блокируются.
Во всех них, кроме одного, при сборке не добавляется раздел времени выполнения, Таким образом, сборка не перенаправляет либо. Когда я сравниваю файлы csproj, я вижу тег
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
в первой группе PropertyGroup.
Я уже пытался добавить
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
в csproj, где я не получаю перенаправления сборки.
Я также пытался добавить следующий раздел в мой csproj где перенаправления сборки не работают
<Target Name="ForceGenerationOfBindingRedirects" AfterTargets="ResolveAssemblyReferences" BeforeTargets="GenerateBindingRedirects" Condition="'$(AutoGenerateBindingRedirects)' == 'true'">
<PropertyGroup>
<!-- Needs to be set in a target because it has to be set after the initial evaluation in the common targets -->
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
, но также не радость.
Потенциально существенная разница между нерабочим проектом и рабочим проектом заключается в том, что я ' m используя преобразования конфигурации (используя плагин Configuration Transform). Но даже если я полностью уберу свой csproj из всего, что с этим связано, я все равно не получу никаких перенаправлений сборки.
Так чего мне не хватает? Недавно я добавил кучу кода, который включает в себя множество неявных зависимостей nuget, и теперь я застрял, добавляя одно перенаправление сборки за другим, и это просто совершенно неуправляемо.