Windows MSI Installer: разрешение зависимостей не работает, установлена ​​неправильная сборка - PullRequest
0 голосов
/ 03 февраля 2020

У меня проблема с установщиком MSI в Visual Studio 2019. Почему-то некоторые сборки будут установлены с неправильной версией

  1. папка отладки

    • FileName : System.Diagnostics.Tracing.dll
    • FileVersion: 4.6.26011.01
    • Версия сборки: 4.2.0.0
  2. папка установки

    • Имя файла: System.Diagnostics.Tracing.dll
    • FileVersion: 4.8.3761.0 построено: NET48REL1
    • AssemblyVersion: 4.0.0.0

Все неправильные сборки не имеют прямой ссылки по Nuget.

  • System.Diagnostics.Tracing.dll
  • System.IO.Compression.dll
  • System. Net .Http.dll
  • System.Runtime.Serialization.Primitives.dll
  • System.Security.Cryptography.Algorithms.dll
  • System.Security.SecureString.dll

Когда я запускаю свой приложение локально из папки отладки или выпуска все работает как надо.

мой редирект привязки выглядит так:

 <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Diagnostics.Tracing" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
      </dependentAssembly>
    </assemblyBinding>
...
 <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
      </dependentAssembly>

например

файл не найден, исключение:

 "System.Runtime.CompilerServices.Unsafe, 
 Version=4.0.4.1, Culture=neutral, 
 PublicKeyToken=b03f5f7f11d50a3a"

направлено из Microsoft.Extensions.Configuration. Json .JsonConfigurationFileParser .....

Почему-то это странно для меня, я не понимаю что происходит и почему привязки не работают Может быть, кто-то может помочь мне с этим или объяснить мне поведение

...