Почему Visual Studio создает app.configs для перенаправления сборки? - PullRequest
0 голосов
/ 03 июля 2018

У меня есть решение около 100 проектов. Я не знаю точно, что вызывает это, но Visual Studio иногда добавляет app.config в каждый из моих проектов. Обычно это выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Насколько я могу судить, эти файлы app.config не нужны. Кажется, все работает нормально, если я отменил все эти изменения и удалил файлы app.config. Почему Visual Studio делает это и как я могу остановить это?

1 Ответ

0 голосов
/ 04 июля 2018

Обычно VS добавляет эти конфиги (перенаправление связывания) при обновлении пакетов nuget. Это помогает предотвратить некоторые проблемы, когда .NET ищет зависимости, например,

  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
  </dependentAssembly>

В этой конфигурации мы говорим, что если некоторые другие зависимости вашего приложения имеют ссылки на сборки с версией до 11.0.0.0, они должны использовать версию 11.0.0.0. В этом случае, если вы пропустите это перенаправление привязки, у вас будет исключение во время выполнения.

Если у вас нет таких зависимостей в вашем приложении, вы можете удалить эти конфиги.

...