IronRuby and Strong Name Verification Skipping

Hi All,

I was wondering if anyone could shed any light on how strong names,
assembly signing and verification skipping is working with IronRuby now?

After checking out the latest version of IronRuby from svn I was able to
build ok but when running any application that used IronRuby (including
the ir console) I would get assembly load errors normally to do with the
fact that a Microsoft.Scripting could not be found, the error related to
the fact that a signed version of the assembly could not be found.

After a quick look around I found the SIGNED compilation option and
switched that off but that didn’t help. I then tried to turn off
assembly signing in for each of the IronRuby assemblies in VS.Net 2008.
That didn’t work but it seems to be a bug in VS.Net becuase even though
I unticked the option to sign the assemblies the build would fail if I
moved the key that VS.Net supposedly shouldn’t have been looking for. So
I then resorted to editing the project files to remove all options
relating to strong naming and that worked. I was able to get
applications to load the assemblies and run correctly.

That was about a month ago and I have since re-checked out the IronRuby
code and thought it would be better to get this string naming thing
sorted out. Initially I hit all the same problems and then happended
upon the command below in runfirst.cmd:

sn -Vr *,31bf3856ad364e35

After running that command all the apps that use IronRuby (including the
ir console) work fine with the default signed assemblies. But if you
have to turn off assembly strong name verification to get the IronRuby
assemblies to load what’s the point of signing them in the first place?

Regards,

Aaron

The key that is in SVN is only a test key. If you notice, the solutions
are
set up to DELAY sign, not FULLY sign. Any delay signed assemblies have
to
be registered for verification skipping. This is a common development
technique to ensure the build scripts and everything work correctly,
without
having to put your true key out in the wild.

When Microsoft officially releases IR, they will fully sign it using a
true
private key.

On Fri, Jul 11, 2008 at 10:12 PM, Aaron C. [email protected]

Michael L. wrote:

The key that is in SVN is only a test key. If you notice, the solutions
are
set up to DELAY sign, not FULLY sign. Any delay signed assemblies have
to
be registered for verification skipping. This is a common development
technique to ensure the build scripts and everything work correctly,
without
having to put your true key out in the wild.

When Microsoft officially releases IR, they will fully sign it using a
true
private key.

On Fri, Jul 11, 2008 at 10:12 PM, Aaron C. [email protected]

Perfect. Thanks for the explanation.