У нас есть две версии той же сборки в GAC? Я хочу, чтобы мой клиент выбрать выбор какой сборки?
В конфигурационном файле выполните следующие действия:
<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" .
Вы можете запрограммировать приложение для редактирования файла 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. Это позволит указать версию сборки, необходимую вашему приложению.
Вы можете использовать System.Activator класс и его статический метод CreateInstance, который имеет количество перегрузок. Вы можете указать полное имя сборки в формате System, Version = 1.0.5000.0, Culture = neutral, PublicKeyToken = b77a5c561934e089