miguelkachondo / or-tools

Automatically exported from code.google.com/p/or-tools
0 stars 0 forks source link

C# DLLs are not strong-named (aka signed), so cannot be referenced from other strong named assemblies. #13

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
There are various reasons for strong-naming an assembly. These include:

* Only strong-named assemblies can be put into the GAC.

* Strong-named assemblies can only reference other strong-named assmeblies.

* Strong-named assemblies are uniquely identifiable by key, name and version 
and can be verified as not having been tampered with.

In our scenario, we needed to make our core application signed, which requires 
that all third party DLLs are also signed. The ildasm/ilasm workaround for 
retro-signing does not work for or-tools DLLs likely due to the unusual linking 
process.

I've modified Makefile.csharp.mk to consider the variables CLR_KEYFILE and 
CLR_DELAYSIGN which can be passed as arguments to make. Specifying CLR_KEYFILE 
(and optionally CLR_DELAYSIGN) will produce signed DLLs and test executables. A 
diff against r2200 is attached.

Original issue reported on code.google.com by t...@zanyants.com on 5 Sep 2012 at 11:17

Attachments:

GoogleCodeExporter commented 9 years ago
Thanks. I have pushed the diff to the svn.

Original comment by laurent....@gmail.com on 5 Sep 2012 at 3:54