You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建源代码不可见的NuGet包?.NET Standard 2.0类库适用

解决.NET Standard 2.0类库NuGet包被查看源代码的问题

1. 打包时排除符号与源代码文件

右键类库项目选择属性,进入包选项卡,找到符号包区域,选择不生成符号包。也可以直接编辑项目文件(.csproj),添加以下配置:

<PropertyGroup>
  <IncludeSymbols>false</IncludeSymbols>
  <IncludeSource>false</IncludeSource>
</PropertyGroup>

这样打包后的NuGet包不会包含调试符号(.pdb)和原始源代码,避免用户通过符号文件直接查看实现细节。

2. 启用代码混淆

默认编译生成的IL中间语言极易被反编译,需通过混淆工具处理程序集:

  • Dotfuscator Community:Visual Studio自带免费工具,在工具菜单中打开后关联你的类库项目,启用混淆规则——重点混淆方法内部逻辑,对非公共成员进行重命名(注意不要修改公共API的名称,否则会导致调用失败)。
  • ConfuserEx:开源混淆工具,通过配置文件设置混淆选项,处理后的程序集反编译后会显示乱码或无意义的代码,难以还原原始实现。

3. 调整编译优化设置

右键项目属性进入生成选项卡:

  • 在常规区域,将调试信息设置为无;
  • 点击高级按钮,勾选优化代码选项,让编译生成的IL代码更精简,提升反编译难度。

补充说明

以上操作无法完全杜绝反编译(IL本身是中间语言特性决定),但能大幅提高反编译门槛,普通用户无法轻易获取函数内部实现。若需商业级别的强保护,可选用专业商业混淆工具(如Dotfuscator Professional)。

内容的提问来源于stack exchange,提问作者Ozgur Saklanmaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 01:52:12