如何以 DLL 用户无法查看我的源代码的方式将我的 C# 代码转换为 DLL 文件?
当我以我一贯的方式制作 DLL 时,通过制作类库项目、导入我的类并编译它,仍然可以查看源代码。
如何以 DLL 用户无法查看我的源代码的方式将我的 C# 代码转换为 DLL 文件?
当我以我一贯的方式制作 DLL 时,通过制作类库项目、导入我的类并编译它,仍然可以查看源代码。
我相信你正在寻找一个混淆器。这是一个工具,它将获取已编译的 DLL 并重写代码,以防止其他用户对它进行有意义的反编译。Visual Studio 附带一个免费的Dotfuscator
请注意,这实际上不会阻止人们查看您的代码。相反,他们将查看您的代码的非常奇怪的翻译。没有办法阻止人们使用 C# 或任何其他 .Net 语言查看代码的反编译版本。
这不是 C# 独有的东西。事实上,这是存在的每种语言的缺陷。完全可以反编译 C 代码。但不同之处在于,在反编译托管语言(例如 .Net 和 Java)时,维护大量原始代码结构要容易得多,因为元数据会维护原始结构。
混淆是您要搜索的内容。
Visual Studio 中有一个免费的(有限的)叫做 Dotfuscator。
使用花哨的方法重命名您的代码并更改流路以使其模糊。
考虑使用混淆器。
如果您正在开发桌面应用程序,将您的代码转换为 Dll 不会隐藏它(有许多工具可以反编译 dll 或 exe 文件)。
但是如果您使用的是 Asp.Net,那么您可以将您的网站编译为 Dll,并且代码在 aspx 页面中将不可见,它将被编译为 Dll,您可以在解决方案资源管理器中右键单击您的项目,然后选择发布网站
但在所有情况下,.Net Exe 文件和 DLL 都很容易反编译并再次提取源代码,除非您使用工具来混淆您的代码。
如果您的意思是,最终用户可以通过反编译来查看您的源代码,那么您可以使用混淆器来保护自己。
Visual Studio 中有内置的标准混淆器。在菜单中选择工具/Dotfuscator 社区版。
我认为我对有关 JavaScript 混淆的类似问题的回答也适用于此处:简而言之,为什么要打扰?您的问题已在此处得到解答(“使用混淆器”),但我认为找出您的动机并没有什么坏处。一般来说,你给别人的代码是“在敌人手中”——如果有人想使用它/弄清楚它是如何工作得不够糟糕的,他们会的。