如何确定我的应用是否被编译为“release”而不是“debug”?我去了VS 2008项目属性>生成,并将配置从调试到发布,但我注意到没有改变?这是一个ASP.NET项目。Asp.net发布版本与调试版本
回答
对于Web.config中的一个debug,将被设置为true,但是您也可以在发布应用程序中实际设置它。
在调试然而定义像DEBUG设置,所以很简单的事:
bool is_debug;
#ifdef DEBUG
is_debug = true;
#else
is_debug = false;
#endif
只有当你明确地设置它时,debug才会在Web.config中设置,或者你点击F5运行网站并允许它更改配置文件。此设置不是指示选择了哪个*构建配置*。 – Gromer 2009-05-21 04:28:23
如果你想知道如果DLL是建在调试模式下,使用debug属性,那么你最好的选择就是反思。
从“How to tell if an existing assembly is debug or release”摘自:
Assembly assembly = Assembly.GetAssembly(GetType());
bool debug = false;
foreach (var attribute in assembly.GetCustomAttributes(false)){
if (attribute.GetType() == typeof(System.Diagnostics.DebuggableAttribute)){
if (((System.Diagnostics.DebuggableAttribute)attribute)
.IsJITTrackingEnabled){
debug = true;
break;
}
}
}
这将让正在调用该代码的程序集(实际上本身),然后调试布尔值设置为true,如果组件在调试模式下进行编译,否则它是错误的。
这可以很容易地放入控制台应用程序(如在链接的例子中),然后你传递你想检查的DLL/EXE的路径。你会从这样的路径加载程序集:
Assembly assembly =
Assembly.LoadFile(System.IO.Path.GetFullPath(m_DllPath.Text));
你需要寻找比IsJITTrackingEnabled更多 - 这是完全独立的代码是否被编译优化和JIT优化。
此外,如果您在发布模式下编译并选择DebugOutput以“none”以外的其他任何值,DebuggableAttribute就会出现。
请参阅我的文章: How to Tell if an Assembly is Debug or Release和 How to identify if the DLL is Debug or Release build (in .NET)
- 1. 发布调试版本的asp.net dlls
- 2. iOS移动版本调试与发布
- 3. 发布版本与调试版本性能
- 4. 发布版本的运行方式与调试版本不同
- 5. 发行版与调试版本
- 6. 发布版本与大会(等)版本
- 7. 发布版本与Flash版本?
- 8. Qt调试版本和Qt发布版本有什么区别?
- 9. visual C++强制发布版本使用调试版本代码
- 10. PropertyInfo.CanWrite物业在调试版本真,在发布版本
- 11. 切换应用程序调试版本和MultiDexApplication发布版本
- 12. Sandcastle区分调试版本和发布版本?
- 13. Q/A,发布版本VS调试版本,并断言
- 14. 发布版本中运行时间过长(调试版本OK)
- 15. VS10从调试版本生成发布版本
- 16. 调试发布版本时出错
- 17. 发布,调试版本和授权Google?
- 18. Gradle发布版本仍然可调试?
- 19. 发布版本调试问题
- 20. 发布版本与调试版本相比增加了应用程序大小
- 21. 发布版本中的更多FxCop调查结果比调试版本
- 22. ASP.NET MVC 2发行版的实际调试符号版本
- 23. iOS开发人员版本与发布版本
- 24. VS发布到Azure使用调试而不是发布版本
- 25. Visual Studio中调试与发布版本:比较int和float missmatch
- 26. 的Xcode 8.3.3,链接框架与发布和调试版本
- 27. 根据调试版本或发布版本自动更改地图密钥
- 28. 什么的调试版本和发布版本,区别意味着和使用
- 29. 从调试版本更改为发布版本时'找不到资源'异常
- 30. 管理/使用具有调试版本和发布版本的库
同类者问题在#1,一个问题,和很多很多不同的答案: http://stackoverflow.com/questions/654450/programatically-检测释放调试模式网络 http://stackoverflow.com/questions/798971/how-to-idenfiy-if-the-dll-is-debug-or-release-build-in-net http://stackoverflow.com/questions/194616/how-to-tell-if-net-app-was-compiled-in-debug-or-release-mode http://stackoverflow.com/questions/50900/best-way-to-detect-a-release-build-from-a-debug-build-net http://stackoverflow.com/questions/890459/ asp-net-release-build-vs-debug-build – Kiquenet 2011-02-03 19:51:42