以前脑子中就有一个意识,发布一个正式版的Assembly的时候应该使用Release的方式编译,这样程序的性能肯定会更好,但由于平常都是调试开发,也没有自己发布什么正式版的程序,所以一直没有深入研究究竟是为什么,直到今天想用Release编译的时候却发现,编译无法通过,提示无法找到一些引用的程序集,可是它的引用却是正常的(没有感叹号)啊?使用Debug的方式编译也没有问题啊!纳闷之余去google找了些资料,(其中大部分是在博客园和博客堂的资料,说明了这两个社区资源有多丰富了:) ),这才稍微了解Debug和Release的一些内在区别,原来它们是这么一回事啊!可是还是没有解决我的问题啊?无法找到引用的程序集,于是我在解决方案中把它所以工程的Configuration Properties改成了Release,然后逐个编译,提示无法找到程序集的,给它重新指定引用,居然可以了,呵呵。
如果细心点查看工程的属性,在Build选项卡中就可以看出Debug和Release所选择的复选框的不同了。为了方便以后再次发布新版本,可以把配置好的sln文件备份出来,命名为Release.sln,以后再次发布就不用再麻烦配置了。可以用MSBuild来代替我们的配置,使用MSBuild Solution.sln /p:Configuration=Release就行了。当然了,在VS 2005中开发还可以用Web Deployment Project来发布我们的Asp.net 2.0程序,它会自动帮我们把CS文件删除,修改web.config到最佳配置如debug="false",在Property_Pages还可以配置各种自定义设置,如果部署,强名称,多个程序集,输出目录等等,非常方便,强烈推荐。
参考资料:http://shanyou.cnblogs.com/archive/2005/10/11/252669.html
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=210098
http://weblogs.asp.net/scottgu/archive/2006/04/11/442448.aspx