vb.net 怎么判断生成的exe 是debug还是release版本的。

liyanmingkong 2011-12-20 10:39:22
vb.net 用程序 怎么判断生成的exe 是debug还是release版本的。
...全文
298 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxingmin 2011-12-20
  • 打赏
  • 举报
回复
gxingmin 2011-12-20
  • 打赏
  • 举报
回复
在.NET中以DebuggableAttribute来控制CLR如何处理模块代码规则,
而属性IsJITTrackingEnabled来标识运行库在代码生成过程中是否跟踪调试信息的的标识,
如果IsJITTrackingEnabled为True,表示运行库跟踪调试信息,可推断为Debug Build 模式;
如果IsJITTrackingEnabled为false,表示运行库没有跟踪调试信息,可推断为Release模式。
所以,解决方法着眼于对IsJITTrackingEnabled信息的获取上: 具体解决方法:
public enum DebugMode
{
Debug,
Release
}
public static class Utils
{
/// <summary>
/// Get GetCustomAttribute
/// </summary>
/// <typeparam name="T">CustomAttribute Type</typeparam>
/// <param name="provider"></param>
/// <returns></returns>
public static T GetCustomAttribute<T>(this ICustomAttributeProvider provider) where T : Attribute
{
var attributes = provider.GetCustomAttributes(typeof(T), false);
return attributes.Length > 0 ? attributes[0] as T : default(T);
}

public static DebugMode GetDebugMode(string assemblyName)
{
if (string.IsNullOrEmpty(assemblyName))
{
throw new ArgumentNullException("assemblyName");
}
DebugMode ret = DebugMode.Debug;
try
{
// Get assebly by name Assembly ass = Assembly.LoadFile(assemblyName);
// Get DebuggableAttribute info DebuggableAttribute att = ass.GetCustomAttribute<DebuggableAttribute>();
ret = att.IsJITTrackingEnabled ? DebugMode.Debug : DebugMode.Release;
} catch (Exception)
{
throw;
}
return ret;
}
}
liyanmingkong 2011-12-20
  • 打赏
  • 举报
回复
thank you ,试一下。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧