场景
两个类库A和B,A引用了B,A生成时默认会在bin下生成A.dll,B.dll。
需求:将A提供给外部进行二次开发,但不希望B被看到并直接调用(通过A封装B以限制B的使用)。
解决方法
-
生成密钥
-
找到Sn.exe,我的是Win7 64位,在
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64
下; -
打开cmd,进入该目录,
cd C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64
; -
cmd中执行
sn -k keyfile.snk
会在当前目录下生成密钥文件;
-
-
签名程序集
-
将keyfile.snk拷贝到类库B的目录下;
-
打开B的属性,进入签名,勾选
为程序集签名
,选择强名称密钥文件,生成类库;
-