W
whytwelve13
I have three projects. Project A is a class library. Project B is a
class library that uses project A. Project C is a Windows application
that uses both A and B. Project B is out of my control (I don't have
the source code), but I have a source code for project A and I can make
changes to it.
When both PA and PB are compiled as strongly-named assemblies,
everything works. In order to compile PA, I have to use my key file,
which is not the same as the key used for signing PA and PB when they
come together. This creates a strongly-named assembly pa.dll which
doesn't have the same public key token as the one that naturally comes
with PB.
Can I specify somehow in Project C that I want pb.dll to work with
pa.dll which I built? This means that the full assembly name will not
have it's version part changed, but the public token part instead.
Using bindingRedirect in app.config can solve pa.dll being upgraded to
another version, but how can I specify that I want another public
token?
Basically, without this possibility, if one library uses another one, I
have to have the source code for both or I cannot use them at all.
If I am mistaken in any of the above statements, please correct me.
Otherwise, do you have any ideas how this can be done?
class library that uses project A. Project C is a Windows application
that uses both A and B. Project B is out of my control (I don't have
the source code), but I have a source code for project A and I can make
changes to it.
When both PA and PB are compiled as strongly-named assemblies,
everything works. In order to compile PA, I have to use my key file,
which is not the same as the key used for signing PA and PB when they
come together. This creates a strongly-named assembly pa.dll which
doesn't have the same public key token as the one that naturally comes
with PB.
Can I specify somehow in Project C that I want pb.dll to work with
pa.dll which I built? This means that the full assembly name will not
have it's version part changed, but the public token part instead.
Using bindingRedirect in app.config can solve pa.dll being upgraded to
another version, but how can I specify that I want another public
token?
Basically, without this possibility, if one library uses another one, I
have to have the source code for both or I cannot use them at all.
If I am mistaken in any of the above statements, please correct me.
Otherwise, do you have any ideas how this can be done?