为什么我能够调试我的程序集?

时间:2010-09-05 14:21:00

标签: c# .net dll

我正在处理一个处理各种颜色转换的程序集。当我将程序集加载到一个新项目进行测试时,如果程序集中出现错误,Visual Studio将从DLL中打开有问题的代码。我可以逐步完成程序集中的所有代码。

我绝对不希望代码如此容易可见/可用。我希望代码在程序集中有点“锁定”。

如何设置DLL只是抛出某种错误而不是打开?

修改

我对代码“安全”不感兴趣,我不需要混淆。该库正在内部使用,代码本身可供托管人员完全访问。我不想要的是使用该库的人发现自己突然调试程序集。如果出现问题,我更倾向于抛出错误,而不是在Visual Studio中打开汇编代码。

4 个答案:

答案 0 :(得分:15)

这种情况正在发生,因为您在计算机上安装了VS,并且因为您正在部署PDB文件 - 如果未安装VS,您将无法获得此对话框。

另外:

  • 不要部署已在Debug配置中构建的代码。这些包含有助于调试的其他信息。
  • 确保不使用可执行文件部署PDB文件。与上面相同,运行代码不需要它们。

这些都有帮助,但任何程序集都可以使用反射器轻松反编译,因此您可能还需要调查混淆器以阻止其他程序员轻松查看您的代码。

答案 1 :(得分:3)

这里有一个C#混淆器列表:http://www.csharp411.com/net-obfuscators/

答案 2 :(得分:2)

您需要的是混淆二进制文件。

答案 3 :(得分:0)

基本上,如果您希望您的代码安全并且您不希望您的类暴露给其他人,那么您肯定需要对代码进行模糊处理。

要对代码进行模糊处理,可以使用DotFuscator,它包含在Visual Studio安装中。

检查我的文章。 http://www.codeproject.com/KB/dotnet/code_security.aspx