Почему сборка-привязка-перенаправление всегда настраивается в отдельном файле .config и не может быть вставлена ​​в код (легко) - PullRequest
0 голосов
/ 01 апреля 2020

Я написал сборку. NET и ссылался на некоторые google-сборки. Эти гугл-сборки имеют все версии 1.44.1.0. Но некоторые ссылки внутри гугл-сборок ссылаются на версию 1.36.1.0. Таким образом, в файле .config есть перенаправление привязки сборки, например

<runtime>
 <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
   <dependentAssembly>
     <assemblyIdentity name="Google.Apis.Auth" publicKeyToken="4b01fa6e34db77ab" culture="neutral"/>
     <bindingRedirect oldVersion="0.0.0.0-1.44.1.0" newVersion="1.44.1.0" />
   </dependentAssembly> ...

, поэтому оно будет работать, поскольку ссылка на 1.36.1.0 перенаправлена ​​на 1.44.1.0. Но когда я использую свою сборку в разных проектах, мне нужно создать .config-файл для каждого проекта, в котором я использую свою сборку сверху, и добавить перенаправление сборки-привязки-перенаправления. Я бы предпочел поместить эту «конфигурацию» в саму сборку - и могу забыть о .config-файлах. Кажется, есть способ сделать это: https://blog.slaks.net/2013-12-25/redirecting-assembly-loads-at-runtime/ но почему это так сложно? Или я что-то упустил?

...