У нас есть две версии одной сборки в GAC? Я хочу, чтобы мой клиент сделал выбор, какую сборку выбрать?

2

У нас есть две версии той же сборки в GAC? Я хочу, чтобы мой клиент выбрать выбор какой сборки?

Теги:
assemblies

3 ответа

0
Лучший ответ

В конфигурационном файле выполните следующие действия:

<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="clsLibVsn"
publicKeyToken="b035c4774706cc72"
culture="neutral"/>
<bindingRedirect oldVersion= "1.1.1830.10493"
newVersion= "1.0.1830.10461"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

Вам нужно указать "bindingRedirect" в вашем файле конфигурации. Для вложений в приведенном выше случае "clsLibVsn" имеет две версии: "1.1.1830.10493" и "1.0.1830.1 из которых "1.1.1830.10493" является последней версией. Но используя bindingRedirect, мы можем говоря "1.0.1830.10461" - это новая версия. Таким образом, клиент не будет использовать "1.1.1830.10493" .

5

Вы можете запрограммировать приложение для редактирования файла app.config. Вы должны написать что-то похожее на это:

<configuration>
    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="yourassembly" publicKeyToken="96D09A1EB7F44A99" culture="neutral"/>
          <bindingRedirect oldVersion="0.0.0.0-2.2.8.0" newVersion="2.2.8.0"/>
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
  </configuration>

в вашем app.config. Это позволит указать версию сборки, необходимую вашему приложению.

0

Вы можете использовать System.Activator класс и его статический метод CreateInstance, который имеет количество перегрузок. Вы можете указать полное имя сборки в формате System, Version = 1.0.5000.0, Culture = neutral, PublicKeyToken = b77a5c561934e089

  • 0
    Вам может потребоваться определить Интерфейс в некоторой «Общей» сборке, на которую ссылаются ваше приложение и эти две версии сборок, и некоторые классы в этих сборках. После CreateInstance вы можете развернуть объект в этот интерфейс и использовать!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню