Vac*_*ano 4 .net .net-4.0 visual-studio-2010 visual-studio
我正在尝试创建一个项目模板向导.为此,我需要一个带有公钥标记的强名称程序集.
我去了这里:http: //msdn.microsoft.com/en-us/library/ms247123.aspx并按照步骤操作.
我在程序集中最终得到一个.pfx文件.但是当我清理并构建dll时,它上面没有公钥标记.
(我通过运行'sn -t EventWizard.dll'验证了我的结果:
无法将密钥转换为令牌 - 程序集'(null)'的公钥无效.
所以我认为我没有得到公钥令牌.我该怎么办?
更新:这是我的签名标签:

所以它毕竟是强烈的命名.但是需要以不同的方式使用sn.exe工具来查看我正在寻找的值(PublicKeyToken).
如果我跑这个:
sn -e EventWizard.dll temp.txt
sn -t temp.txt
Run Code Online (Sandbox Code Playgroud)
然后它工作得很好.
我也面临着这个问题.
解决方案非常简单 - 参数区分大小写.
//Does not work
sn -t yourassembly.dll
//Works
sn -T yourassembly.dll
Run Code Online (Sandbox Code Playgroud)
在InternalsVisibleTo 中找到了使用强类型程序集的解决方案
转到:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools(或 sn.exe 所在的位置)
sn -p MyKey.snk MyKey.PublicKeyOnly.snk
Run Code Online (Sandbox Code Playgroud)
这会将公钥复制到新文件中
sn -tp MyKey.PublicKeyOnly.snk
Run Code Online (Sandbox Code Playgroud)
这将输出类似: Public key is 0024000004800000940000000602000000240000525341310004000001000100cfb8bc23b86a08 e70d021dd53d3b0293e716e71015870bdcc58a0 231a4228618851a83e06077f5a44f42beb2baf3 56ad2d344521a96b0081ed0f25f9227523e3625eda524efe1cf2e1e5e41f3693a76ec52347684b 8129a4bb2d5fc49 681adf33da0eecc4f81f011af4539d12abe1b4e760b5ce32d766db1012d4402 8381f0b4
公钥令牌是 2ff2b71993eeff95
复制公钥值并更新InternalsVisibleTo:
[程序集:InternalsVisibleTo("MyProject.Domain.Tests,PublicKey= 0024000004800000940000000602000000240000525341310004000001000100cfb8bc23b86a08 e70d021dd53d3b0293e716e71 015870bdcc58a0231a4228618851a83e06077f5a44f42beb2baf3 56ad2d344521a96b0081ed0f25f9227523e3625eda524efe1cf2e1e5e41f3693a76ec52347684b 8 129a4bb2d5fc49681adf33da0eecc4f81f011af4539d12abe1b4e760b5ce32d766db1012d4402 8381f0b4")]
| 归档时间: |
|
| 查看次数: |
8975 次 |
| 最近记录: |