Làm thế nào bạn có thể xác định xem một hội đồng .Net cụ thể đã được ngen'd hay không? Tôi cần phải kiểm tra từ mã. Thậm chí việc gọi dòng lệnh cũng sẽ ổn. Tại thời điểm này tôi không thể nhìn thấy bất kỳ cách nào để xác định điều này.Làm thế nào để xác định xem lắp ráp đã được ngen'd?
Trả lời
Bạn có thể tìm cách lắp ráp trong "bộ nhớ cache ngen" (C: \ Windows \ assembly \ NativeImages_v2XXXXXXX).
Cụm được lắp ráp sẽ có tên định dạng sau: [tên cơ sở]. ni. [Baseextension].
Windows 7 dường như lưu trữ chúng là một vị trí hơi khác và không có '.ni'. trong tên: C: \ Windows \ assembly –
Rất lạ. Tôi đã cài đặt Windows 7 và đường dẫn "ngen tiền" là "C: \ Windows \ assembly \ NativeImages_v2.0.50727_32 \". – Sasha
Kiểm tra Từ Mã
Kiểm tra xem chúng tôi đang tải một hình ảnh bản địa cho các assembly thực hiện. Tôi đang tìm mẫu "\ assemblyname.ni" trong thuộc tính tên tệp được nạp.
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;
}
}
}
Command Line Giải pháp:
Run "ngen hiển thị" trên cửa sổ lệnh.
Ví dụ:
hiển thị ngen MyTestsApp.exe
Nếu cài đặt, nó sẽ in ra một cái gì đó giống như hình ảnh Quê quán: MyTestsApp, Version = 1.0.0.0, Culture = trung tính, PublicKeyToken = null
và trả về 0 (% errorlevel%)
Nếu không, nó sẽ in ra:
Lỗi: Cụm được chỉ định chưa được cài đặt.
và trả lại -1
- 1. Làm thế nào để sử dụng C xác định trong bộ lắp ráp ARM
- 2. C#: Làm thế nào để tải lắp ráp từ GAC?
- 3. Lắp ráp Maven: lắp ráp
- 4. Ngôn ngữ lắp ráp LLVM ổn định như thế nào?
- 5. Làm thế nào để sử dụng ADC trong lắp ráp?
- 6. Làm thế nào để xem lắp ráp phía sau mã bằng Visual C++?
- 7. Làm thế nào để remap phiên bản lắp ráp
- 8. Làm thế nào để đọc lắp ráp thuộc tính
- 9. Làm thế nào để unregister lắp ráp đã đăng ký sử dụng regasm
- 10. Làm thế nào để xác định xem kênh từ xa đã được đăng ký
- 11. Lắp ráp được giải quyết bằng .NET như thế nào?
- 12. Cơ sở dữ liệu định vị địa lý được lắp ráp như thế nào?
- 13. "Lắp ráp cùng tên đơn giản đã được nhập" lỗi
- 14. lắp ráp để so sánh hai số
- 15. Maven: làm thế nào để chỉ định thực hiện lắp ráp plugin chạy
- 16. Lắp ráp theo Byte
- 17. VS2005: Lắp ráp '<assembly>' được chỉ định không chính xác dưới dạng tệp.
- 18. Tái định cư trong lắp ráp
- 19. Lắp ráp đường vòng và lắp ráp GCC (Linux)
- 20. Làm thế nào để gọi thư viện c từ mã lắp ráp trên Linux?
- 21. Làm thế nào tôi ký một bản lắp ráp đã được tích hợp vào một dll cụ thể flute.dll
- 22. Làm cách nào để có phiên bản lắp ráp?
- 23. Làm thế nào để làm cho XmlnsDefinition hoạt động trên lắp ráp cục bộ?
- 24. Deserialize đối tượng vào lắp ráp mà bây giờ đã được ký và được phiên bản
- 25. Làm cách nào để xác định xem hình ảnh đã được tạo ảnh?
- 26. Lắp ráp C# nào chứa Invoke?
- 27. Làm thế nào để sửa đổi lắp ráp Erlang? Có tài nguyên nào không?
- 28. Làm thế nào để bạn xác định xem các chủ đề con đã hoàn thành
- 29. Tôi làm cách nào để có thể lắp ráp?
- 30. làm thế nào lisp được thực hiện trong ngôn ngữ lắp ráp?
Trong mã? Từ dòng lệnh? Tương tác? Gì? Nó phải nằm trong các thuộc tính tệp ở đâu đó ... –