如何使用强名称签署.NET程序集DLL文件?

gua*_*ike 39 .net code-signing

我有一个没有强烈命名的集会.我没有源代码.

我现在需要签名.有没有办法做到这一点?

Che*_*eso 17

如果原始程序集标记为延迟签名,则可以使用sn.exe工具.

如果原始程序集未标记,则可以使用ildasm.exe对其进行反汇编,然后使用ilasm.exe重新组合并指定/ key参数.参考文献:[1] [2].

例:

> ildasm /all /out=MYASSEMBLY.il MYASSEMBLY.dll
> ilasm /dll /key=key.snk MYASSEMBLY.il
Run Code Online (Sandbox Code Playgroud)


xmo*_*jmr 9

签署第三方程序集的简便方法是使用以下GUI版本Assembly Strong Name Signer:http://brutaldev.com/post/2013/10/18/NET-Assembly-Strong-Name-Signer.

它的源代码可以在Github上找到.使用Mono.Cecil了肮脏的工作.也可用作command line工具.

我发现建议ildasm- > ilasm往返建议在几个地方繁琐,最好避免.

我不知道如何Assembly Strong Name Signer处理多程序集依赖项.如果没有,问题及其解决方案将在此处描述(2008年出版):http://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing/


Joe*_*ung 2

使用强名称工具实用程序 ( sn.exe )。

  • 致Cheeso:是的,你是对的,我找到了一种方法:http://ryanfarley.com/blog/archive/2010/04/23/sign-a-.net- assembly-with-a-strong-name-without -重新编译.aspx (2认同)