如何避免Visual Studio显示C# DLL源代码?构建流程是否有误?
问题分析与解决方法
这种情况一般不是构建流程的“错误”,而是构建配置默认生成了带源代码关联信息的调试符号文件,导致Visual Studio能直接显示库的源代码。以下是具体排查和处理方式:
检查是否附带了PDB文件
你的C#库构建后会生成.pdb调试符号文件,这个文件默认包含源代码的路径信息(部分配置下还会嵌入代码片段)。如果把PDB和DLL一起复制到引用项目的目录,VS会自动读取PDB并关联显示源代码。解决办法很简单:发布或分发库时,只提供编译后的.dll文件,不要附带.pdb文件。修改库项目的构建配置
打开库项目的属性窗口:- 切换到「生成」选项卡,点击「高级」按钮;
- 在弹出的高级生成设置窗口中,把「调试信息」选项从
完整或pdb-only改成无; - 重新构建库,此时不会生成PDB文件,VS就无法直接关联显示源代码了。
排查是否意外包含源代码文件
检查库项目的输出目录,确认没有把.cs源代码文件一起打包进去;同时检查项目属性的「生成事件」,看是否有脚本把源代码复制到输出目录,有的话移除相关命令。
补充说明
即使移除PDB,专业工具仍能反编译DLL得到近似的源代码,但这和VS在引用管理器里直接显示原始源代码是两回事。如果需要更强的代码保护,可以考虑使用代码混淆工具进一步处理。
内容的提问来源于stack exchange,提问作者Hancs
相关产品推荐
相关产品推荐

