以前DLL全是用DeBug进行编译的,
然后现在程序引入这些DLL,
最终发布要发布成Relese的话,
原来那些Debug的Dll要不要重新编译?
--------
如我的项目引用了原一个Z.Core.Helper的DLL,是用DeBug编译的
现在我的项目引用了这个DLL,
现在发布要发布成Release版本,
那原来的这个Z.Core.Helper要不要在原来的地方重新编译成Release?
还是编译我现在的项目,他就自动会全是Release版本的了?
谢谢

解决方案 »

  1.   

    如果没有使用强签名的话不用重新编译,程序也能正常运行,但是用release配置重新编译可以对性能优化。
      

  2.   

    可以建个小项目,引入个debug版的dll,你自己试下就知道了,
      

  3.   

    引用Dll的话一般而言不会自动重新编译,除非有编译时的其他的脚本来控制。
    放在同一个solution里面的project引用重新编译时可以一起得到更新。
      

  4.   

    如果你引用的是某个项目,当改变编译方式为Release的时候,会自动一起改变,如果引用的是已经编译的dll,则不会改变,但不影响使用。
    Debug和Release的唯一区别是代码优化,比如你写一段无用的代码,定义了一些根本没用到的变量,Debug模式下,这些无用代码和无用变量都会存在,代码的排列方式完全和你的编写方式一样,但是Release模式下面就会自动删除那些无用代码和无用变量,对于循环内部重复定义的变量也会提到外面去变为一个全局变量反复使用,最大限度优化你的代码。而所有这些其实也可以在Debug模式下实习,项目选项里勾选那个“优化代码”的选项即可。
    最后提醒下,如果想断点调试代码,最好用Debug模式,这样它就能保证所有的断点都会到达,而Release模式优化了代码,有部分代码将不执行,你也就无法调试它们。