2012-03-19 40 views
3

我正在嘗試創建一個項目模板嚮導。爲此,我需要一個帶有公鑰標記的強命名的程序集。如何強烈地命名組件,以便它具有公鑰標記

我去了這裏:http://msdn.microsoft.com/en-us/library/ms247123.aspx並按照步驟操作。

我最後在我的程序集中有一個.pfx文件。但是,當我清理和建立的DLL沒有一個公鑰標記。

(我通過運行「SN-T EventWizard.dll」驗證,我得到這個結果:

未能轉換關鍵令牌 - 裝配公鑰「(空)」是。無效

所以我不認爲我得到一個公鑰標記我怎樣才能得到一個

更新:?這裏是我的簽名標籤:

Signing Screenshot

+0

在簽名下拉列表中選擇了什麼? – SLaks 2012-03-19 01:26:40

+0

@SLaks - 我添加了一個截圖。 – Vaccano 2012-03-19 01:35:50

+0

這應該工作;我不確定有什麼問題。 – SLaks 2012-03-19 01:37:47

回答

7

因此它被強烈命名。但是需要以不同的方式使用sn.exe工具來查看我正在查找的值(PublicKeyToken)。

如果我碰到這樣的:

sn -e EventWizard.dll temp.txt 
sn -t temp.txt 

然後它的工作就好了。

19

我也遇到過這個問題。

解決方法非常簡單 - 參數區分大小寫。

sn -T <yourassembly.dll> 
0

InternalsVisibleTo with Strong-Type Assemblies

找到了解決轉到:C:\ Program Files文件(x86)的\微軟的SDK \的Windows \ v8.1A \ BIN \ NETFX 4.5.1工具(或者其它任何SN。 EXE是)

sn -p MyKey.snk MyKey.PublicKeyOnly.snk 

此副本在公共密鑰到一個新的文件

sn -tp MyKey.PublicKeyOnly.snk 

的東西這將輸出像: 公鑰 0024000004800000940000000602000000240000525341310004000001000100cfb8bc23b86a08 e70d021dd53d3b0293e716e71015870bdcc58a0231a4228618851a83e06077f5a44f42beb2baf3 56ad2d344521a96b0081ed0f25f9227523e3625eda524efe1cf2e1e5e41f3693a76ec52347684b 8129a4bb2d5fc49681adf33da0eecc4f81f011af4539d12abe1b4e760b5ce32d766db1012d4402 8381f0b4

公鑰標記是2ff2b71993eeff95

複製的公共密鑰值,以及更新InternalsVisibleTo:

[如組裝:InternalsVisibleTo(「MyProject.Domain。測試中,公鑰= 0024000004800000940000000602000000240000525341310004000001000100cfb8bc23b86a08 e70d021dd53d3b0293e716e71015870bdcc58a0231a4228618851a83e06077f5a44f42beb2baf3 56ad2d344521a96b0081ed0f25f9227523e3625eda524efe1cf2e1e5e41f3693a76ec52347684b 8129a4bb2d5fc49681adf33da0eecc4f81f011af4539d12abe1b4e760b5ce32d766db1012d4402 8381f0b4" )

5

我也面臨着問題,這

解決辦法很簡單 - 。參數區分大小寫

//Does not work 
sn -t yourassembly.dll 

//Works 
sn -T yourassembly.dll 
相關問題