C#生成类库隐藏引用的dll,禁止外部调用

本文介绍了如何在C#中处理类库引用的问题,以隐藏引用的DLL,防止外部直接调用。通过生成强名称密钥文件、签名程序集、添加程序集到缓存及修改引用属性,可以实现只提供主类库A,隐藏并限制对B类库的直接访问。
摘要由CSDN通过智能技术生成

C#生成类库隐藏引用的dll,禁止外部调用

场景

两个类库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的属性,进入签名,勾选为程序集签名,选择强名称密钥文件,生成类库;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值