Strong name validation failed

S

Sehboo

One more try since I don't have the option to remove PublicKeyToken as
somebody pointed that here..


We are using enterprise library (EL) in our application. We want to
upgrade our application from .net 1.1 to .net 2.0. Since we have
changed code in enterprise library, we can't just go with the newer
version, we will have to keep the old version.

All out assemblies are strongly named!


I recompiled all the projects in EL with VS 2005, but if I try to run
EntLibConfig.exe then I get the error that Could not load file or
assembly EntLibConfig.exe or one of its dependency. Strong name
validation failed.


All the projects were compiled with the same old public key.


Here are the entries in our GlobalAssemblyInfo.cs file


[assembly: AssemblyDelaySign(true)]
[assembly: AssemblyKeyFile(@"c:\shared\keys\prod-Public.snk")]
[assembly: AssemblyKeyName("")]


Anybody knows what I need to do?


thanks
 
A

Andrew Faust

I don't think it's possible to do what you want. I believe when you sign an
assembly it uses the key, version, name & a hash of the actual file. This
way you have a guarantee that the file hasn't been tampered with. If it
didn't do a check against the hash of the file there would be nothing to
prevent someone from modifying an assembly in a hex editor and adding their
own code.

You're going to need to keep the old and new versions of your library.
Keeping it around shouldn't be a problem, though. Since your assemblies are
strongly typed the 1.1 and 2.0 versions can coeexist in the GAC jsut fine.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top