2010-12-07 83 views
13

我想從這裏的指導下籤署強名稱的程序集:http://msdn.microsoft.com/en-us/library/xc31ft41.aspx使用al.exe簽名具有強名稱的程序集時,「模塊名稱」是什麼?

關鍵的指令是:

al /out:<assembly name> <module name> /keyfile:<file name> 

它說

module name is the name of the code module used to create the assembly

我不不明白這是什麼意思。在字面意義上,我將把上述解釋爲csc.exe的一些組件(即它創建了程序集),但顯然這在這種情況下是無意義的。因此,首先這是指什麼,其次(爲了幫助我的元學習)如何去推理它是什麼?考慮到文檔的簡潔性,我認爲它應該是顯而易見的或直觀的,但我現在不瞭解它。

我試圖指定一些隨機的名稱(如blah.blah),但得到這個錯誤:

ALINK:錯誤AL1047:錯誤導入文件 「C:\路徑\到\凸出\ BIN \調試\等等。 blah' - 系統找不到 指定的文件。

編輯:進一步閱讀我得到的印象是模塊名稱是代碼的名稱,但我沒有任何運氣指定.cs文件 - 我被告知Database file is corrupt and may not be usable

回答

6

的組件由模塊(.netmodule文件),其由編譯源(的.cs文件)產生的。裝配鏈接器負責將模塊打包成組件。所以,如果你有兩個源文件的Class1.cs和class2.cs:

csc /t:module class1.cs 
csc /t:module class2.cs 
al /out:assembly.dll /t:library class1.netmodule class2.netmodule 

對於與模塊,艙單和組件的CLR如何處理,請參閱Richter最好的治療方法。

1

看看你是否能通過此鏈接找到你要找的東西。如果沒有,我可能會幫助進一步研究。就目前而言,我沒有太多的空閒時間,但在接下來的一小時內可能會有所改變。

Sign assembly with strong name using al /out command

1

在VS2010中,點擊Project Properties - > Signing Tab - > Check Sign this assembly。

提供或創建強名稱密鑰。

相關問題