surajit khamrai
surajit khamrai

Reputation:

We have two version of the same assembly in GAC? I want my client to make choice of which assembly to choose?

We have two version of the same assembly in GAC? I want my client to make choice of which assembly to choose?

Upvotes: 2

Views: 1886

Answers (3)

Himadri
Himadri

Reputation: 8876

Try the following in your config file:

<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>

You need to specify “bindingRedirect” in your config file. For ins in the above case “clsLibVsn” has two versions “1.1.1830.10493” and “1.0.1830.1 from which “1.1.1830.10493” is the recent version. But using the bindingRedirect we can s saying “1.0.1830.10461” is the new version. So the client will not use “1.1.1830.10493”.

Upvotes: 0

Khurram Aziz
Khurram Aziz

Reputation: 1498

You can use System.Activator class and its static CreateInstance method which has number of overloads. You can specify the full assembly name in a format like System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

Upvotes: 0

Nikolay R
Nikolay R

Reputation: 957

You can program your application to edit app.config file. You should write something similar to this:

<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>

in your app.config. This will allow to specify assembly version your application needs.

Upvotes: 5

Related Questions