如何确定一个特定的.Net程序集是否已被创建?我需要从代码检查。即使调用命令行也没问题。目前我看不出有什么办法来确定这一点。如何确定装配是否已经完成?
回答
您可以尝试在“ngen cache”(C:\ Windows \ assembly \ NativeImages_v2XXXXXXX)中找到您的程序集。
已存储的程序集将具有以下格式名称: [basename]。 ni。[baseextension]。
Windows 7似乎存储它们是一个稍微不同的位置,并没有'.ni。'在名字中:C:\ Windows \ assembly – 2010-02-16 19:16:41
很奇怪。我安装了Windows 7,“ngen cash”路径是“C:\ Windows \ assembly \ NativeImages_v2.0.50727_32 \”。 – Sasha 2010-02-17 08:02:50
检查从代码
检查,如果我们加载本地图像执行的程序集。我在加载的模块文件名属性中寻找模式“\ assemblyname.ni”。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Diagnostics;
namespace MyTestsApp
{
class Program
{
static bool Main(string[] args)
{
Process process = Process.GetCurrentProcess();
ProcessModule[] modules = new ProcessModule[process.Modules.Count];
process.Modules.CopyTo(modules,0);
var niQuery = from m in modules where m.FileName.Contains("\\"+process.ProcessName+".ni") select m.FileName;
bool ni = niQuery.Count()>0 ?true:false;
if (ni)
{
Console.WriteLine("Native Image: "+niQuery.ElementAt(0));
}
else
{
Console.WriteLine("IL Image: " + process.MainModule.FileName);
}
return ni;
}
}
}
命令行解决方案:在命令提示
运行 “NGEN显示”。
例子:
NGEN显示MyTestsApp.exe
如果已安装,它打印出像 机映像: MyTestsApp,版本= 1.0.0.0,文化=中立,公钥=空
并返回0(%ERRORLEVEL%)
否则,它打印出:
错误:指定的程序集未安装。
并返回-1
- 1. 如何确定定时任务是否已经完成
- 2. 确定AutoBoxing是否已完成
- 3. 确定javascript是否已完成
- 4. 如何确定Visual Basic中的“WriteAllText”是否已成功完成?
- 5. 如何确定`.post`请求是否已经开始并在jquery中完成
- 6. JSON响应是否已经完成?
- 7. 如何确定是否SkinnableComponent已完成添加部件?
- 8. 如何确定文件夹是否已完成复制c#
- 9. 如何确定文件是否已完成python下载
- 10. 如何确定文件是否已完成下载
- 11. 如何确定html div元素是否已完成加载
- 12. 如何确定dojo网格是否已完成加载?
- 13. 如何确定AVM1Movie是否完成?
- 14. 如何确定过程是否完成?
- 15. 如何检测一个进程是否已经完成执行
- 16. 如何检查Perl编译是否已经完成?
- 17. 我如何知道工作是否已经完成? - crontab的
- 18. 如何知道do_upload是否已经启动并完成?
- 19. 如何确定我是否已经正确实施了d3?
- 20. 确定是否已经过去5秒
- 21. 确定过程是否已经死亡?
- 22. 如何确定是否已在MongoDB中完成完整集合扫描
- 23. 重装内容已经完成
- 24. 如何检查location.href是否已完成?
- 25. 如何检查$ compile是否已完成?
- 26. Android:如何确定Google Play服务是否已正确安装
- 27. 是不是已经完成JSR 286(portlets)?
- 28. 如何检查所有任务是否已正确完成?
- 29. 如何确定NSDate(包括时间)是否已经过去
- 30. 如何确定用户是否已经购买订阅
在代码中?从命令行?交互式?什么?它必须在文件属性的某处... – 2010-01-30 09:31:11