多年来我一直在VB.NET中使用DEBUG编译器常量向控制台写入信息,类似地,我也一直在使用System.Diagnostics.Debug.Write。我一直以为,在构建选项中使用RELEASE时,编译器会忽略所有这些语句,从而消除调试语句的开销,使您的产品代码更加轻便。最近,在使用Silverlight 2 Beta 2时,我注意到Visual Studio实际上连接到了一个我从公共网站运行的发布版本,并显示了我认为甚至没有被编译的DEBUG语句!现在,我的第一反应是认为我的环境有问题,但我也想问一下对System.Diagnostics.Debug和DEBUG构建选项有深入了解的人,我可能在这里误解了什么。
ConditionalAttribute
意味着该方法仍然是实际发布程序集的一部分,只是没有被加载。因此,我想唯一真正的去除调试代码的方法是使用编译器指令? - James