Как перенаправить на более новую спутниковую сборку без изменения основного приложения? - PullRequest
0 голосов
/ 30 апреля 2020

Основная проблема, которую я хочу решить, заключается в том, что у меня есть настольное (winforms) приложение, которое может использовать разные языки, и оно использует их через менеджер ресурсов (приложение устанавливает информацию о культуре потоков). Этот информационный файл сборки приложения содержит следующее:

[assembly: System.Resources.SatelliteContractVersionAttribute("1.0.0.0")]

Теперь я хотел бы обновить свои спутниковые сборки, но я не хочу менять основное приложение. (Согласно: https://docs.microsoft.com/en-us/dotnet/api/system.resources.satellitecontractversionattribute?view=netcore-3.1 это возможно).

Поэтому я попытался и выбрал свой немецкий файл ресурсов, который находится в папке AppFolder / de / Lang.resources.dll, которую я создал. следующий файл политики с именем: «Lang.resources.config» рядом с Lang.resources.dll

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
         <assemblyIdentity name="Lang.resources"
                           publicKeyToken="bd317adc1d7d9856"
                           culture="de" />
         <bindingRedirect oldVersion="1.0.0.0"
                          newVersion="1.1.0.0"/>
       </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

После этого я выполнил следующую команду в приглашении разработчика VS2017 (прежде всего я перешел в / AppFolder / de / folder)

al /link:Lang.resources.config /out:Policy.1.1.Lang.resources.dll /keyfile:key.snk /Platform:anycpu /v:1.1.0.0

Файл политики успешно создан.

И я добавил в глобальный кеш сборок:

gacutil /l Policy.1.1.Lang.resources.dll

Теперь я запустил основной приложение, но оно не использует файл ресурсов немецкого языка. Я пытался отладить Fusion Log Viewer, но его содержимое пусто. (Дополнительная информация: мое приложение не добавило файл Lang.resource.dll в GA C, ни более новую, ни более старую версию)

Я думаю, что что-то пропустил или пытаюсь сделать это неправильно и Я надеюсь, что вы сможете помочь решить эту проблему. Заранее благодарю за ответы!

...