问题描述
vb.net用程序 怎么判断生成的exe是debug还是release版本的。
解决方案
解决方案二:
该回复于2011-12-20 11:36:12被版主删除
解决方案三:
在.NET中以DebuggableAttribute来控制CLR如何处理模块代码规则,而属性IsJITTrackingEnabled来标识运行库在代码生成过程中是否跟踪调试信息的的标识,如果IsJITTrackingEnabled为True,表示运行库跟踪调试信息,可推断为DebugBuild模式;如果IsJITTrackingEnabled为false,表示运行库没有跟踪调试信息,可推断为Release模式。所以,解决方法着眼于对IsJITTrackingEnabled信息的获取上:具体解决方法:publicenumDebugMode{Debug,Release}publicstaticclassUtils{///<summary>///GetGetCustomAttribute///</summary>///<typeparamname="T">CustomAttributeType</typeparam>///<paramname="provider"></param>///<returns></returns>publicstaticTGetCustomAttribute<T>(thisICustomAttributeProviderprovider)whereT:Attribute{varattributes=provider.GetCustomAttributes(typeof(T),false);returnattributes.Length>0?attributes[0]asT:default(T);}publicstaticDebugModeGetDebugMode(stringassemblyName){if(string.IsNullOrEmpty(assemblyName)){thrownewArgumentNullException("assemblyName");}DebugModeret=DebugMode.Debug;try{//GetasseblybynameAssemblyass=Assembly.LoadFile(assemblyName);//GetDebuggableAttributeinfoDebuggableAttributeatt=ass.GetCustomAttribute<DebuggableAttribute>();ret=att.IsJITTrackingEnabled?DebugMode.Debug:DebugMode.Release;}catch(Exception){throw;}returnret;}}
解决方案四:
解决方案五:
thankyou,试一下。
解决方案六:
该回复于2011-12-22 13:13:49被版主删除