2009-08-03 91 views

回答

3

使用強名稱工具實用程序(sn.exe)。

+0

SN.EXE不能做到這一點,becacuse SN.EXE正好可以辭職storng名稱程序集 – guaike 2009-08-03 03:28:46

+0

我認爲如果原始程序集標記爲稍後簽名,sn.exe可以工作。是? – Cheeso 2009-08-03 04:46:54

+2

給Cheeso:是的,你說得對,我找到了一個方法:http://ryanfarley.com/blog/archive/2010/04/23/sign-a-.net-assembly-with-a-strong-name- without-recompiling.aspx – guaike 2010-04-26 03:31:19

12

如果原始程序集標記爲延遲簽名,則可以使用sn.exe工具。

如果原始程序集沒有如此標記,則可以使用ildasm.exe對其進行反彙編,然後使用ilasm.exe重新進行分析並指定/鍵參數。參考文獻:[1][2]

例子:

> ildasm /all /out=MYASSEMBLY.il MYASSEMBLY.dll 
> ilasm /dll /key=key.snk MYASSEMBLY.il 
+0

http://msdn.microsoft.com/en-us/library/xc31ft41(VS.71).aspx MSDN表示使用:al /out:MyAssembly.dll MyModule.netmodule/keyfile:sgKey。 snk。但我沒有成功 – guaike 2009-08-03 06:30:48

-3
You can sign the assembly with the help of VS command prompt. 
Just type the path in VS cmd prompt where your project is physically present. 

In VS cmd 
<your project path>sn -k <name of your project>.snk 

Then go to your project in Solution Explorer -> properties -> Signing -> check checkbox 
-> Browse to the key which is created using VS cmd. 
8

簡單的方法來簽署第三方組件使用的Assembly Strong Name SignerGUI版本,請訪問:http://brutaldev.com/post/2013/10/18/NET-Assembly-Strong-Name-Signer

它的源代碼在Github上可用。骯髒的工作使用Mono.Cecil。也可用作command line工具。

我找到了推薦的ildasmilasm往返建議在幾個地方繁瑣,更好的避免。

我不知道Assembly Strong Name Signer如何處理多裝配的依賴關係。如果沒有,問題和解決方案在此處描述(發佈,2008年):http://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing/

2

看看我的StrongNameResigner。它可以簽署或辭職的裝配和依賴於它同時還採用了這樣的一個命令更新所有引用的所有程序集:

StrongNameResigner.exe -a "c:\temp" -k "key.snk" Foo.Bar 
相關問題