我刚才看了一下关于主题的以前的问题,但我有一些奇怪的结果。调试模式与释放模式 - IsJITOptimizerDisabled属性
首先,我也跟着用,斯科特Hanselman的在旧的文章在他的博客中提出的方法:http://www.hanselman.com/blog/HowToProgrammaticallyDetectIfAnAssemblyIsCompiledInDebugOrReleaseMode.aspx
因此,使用IsJITOptimizerDisabled我应该检查是否有特定的DLL已经被编译发布模式或调试模式。
奇怪的是,我只是试了一下,构建了一个简单的应用程序,检查该属性,并通知被检查的程序集处于调试或发布模式。检查结果和一切都可以对两个我已经在两种模式下编译的DLL。
然后我将这个简单的应用程序传递给一个同事,确认在他的工作站中结果如预期的那样,Debug dll显示“Debug”,发布显示“Release”(这两个dll包含在简单的应用程序)。
但是,当他试图用这个简单的应用程序在另一个服务器(通过mstsc)检查这两个DLL的简单应用程序显示“调试”(即使打开DLL与ILDASM一切似乎很好,一些具体包含在“#if DEBUG”区域内的方法不存在于Relase dll中)。
现在,我生气了,这个问题背后有什么原因吗?我太老了,看不清发生了什么事?可能是某种程度上依赖于环境的反思?是否有一些Service Pack解决了类似的已知问题?
干杯,
詹卢卡
你比较完全相同的二进制文件还是在另一台机器上重新编译? – 2010-08-23 14:27:24
使用简单的应用程序复制了相同的DLL,无需重新编译!这是我疯了的原因! :) – grava 2010-08-23 14:39:53