Tăng tốc độ khởi động của các chương trình được cài đặt bằng .exe Ngen
Môi trường
- Visual Studio
-
- Visual Studio Community 2017
- Visual Studio Community 2019
- WiX Toolset
- 3.11.2
* Nó áp dụng cho các phiên bản khác, nhưng chưa được xác nhận
Bắt đầu
Ứng dụng khung .NET sử dụng .exe Ngen để tạo và cài đặt hình ảnh gốc. Bạn có thể tăng tốc độ khởi động và chạy.
Tuy nhiên, để tạo hình ảnh gốc, bạn phải sử dụng .exe Ngen trong môi trường chạy ứng dụng Nội dung được hình ảnh trước không thể được phân phối. Vì vậy, bạn có muốn người dùng chạy .exe Ngen theo cách thủ công không? Nó phải chạy trong quá trình cài đặt chuyên biệt.
Phần này mô tả quá trình thực hiện .exe Ngen cho exe đích hoặc dll trong cài đặt WiX trong quá trình cài đặt.
Lưu ý rằng .exe Ngen chỉ hợp lệ cho các ứng dụng khung .NET và ban đầu là hội đồng gốc. Điều này không có ý nghĩa đối với ứng dụng cốt lõi .NET.
Chuẩn bị trước
- Giả sử bạn đã tạo trình cài đặt trong WiX.
Thêm tham chiếu thư viện
Thêm phần mở rộng WixNetFx .dll thêm tham chiếu. Đường dẫn thư mục là "C:\Chương trình Tệp (x86)\WiX Bộ công cụ v3.11_bin".
Chỉnh sửa sản phẩm.wxs
Thêm cài đặt cho tệp chạy .exe Ngen.
Wix/@xmlns
Thêm không gian tên mở rộng NetFx.
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
Thêm tham số vào các thành phần tạo hình ảnh gốc (tệp)
Thêm netfx: Các yếu tố con của hình ảnh gốc vào tệp đích.
<Component Win64="yes" Id="OGGVORBISPROJECT.DLL" DiskId="1" Guid="6A1D2FD8-9FA7-40D5-A0EA-356268B3C0B4">
<File Id="OGGVORBISPROJECT.DLL" Name="OggVorbisProject.dll" Source="LittleSaviorTrial\Dll\OggVorbisProject.dll">
<netfx:NativeImage Id="NGEN_OGGVORBISPROJECT.DLL" Platform="64bit" Priority="0"/>
</File>
</Component>
Nếu exe hoặc dll tham chiếu (phụ thuộc) dll khác do bản chất của .exe Ngen, chỉ cần chỉ định exe hoặc dll được tham chiếu. Ví dụ: nếu A.exe tham chiếu đến .dll B, chỉ đặt hình ảnh gốc thành A.exe sẽ tự động bao gồm .dll B.
Tuy nhiên, nếu A.exe tải .dll B động như hội đồng.load sau khi thực hiện, .dll B không phải là phụ thuộc. Sử dụng .exe Ngen trong .exe A không biên dịch .dll B. Trong trường hợp này, bạn sẽ thiết lập hình ảnh gốc trong .dll B.
@Id
Tên có thể phân biệt của hình ảnh gốc. Không chồng chéo lên các ID khác.
@Platform
Chỉ định "32 bit", "64 bit" hoặc "Tất cả". Thay đổi cài đặt 32-bit hoặc 64 bit của ứng dụng bạn muốn cài đặt. all tạo ra hai hình ảnh gốc, vì vậy hãy chỉ định thư viện được chuyển đổi dựa trên trạng thái thực hiện, chẳng hạn như "CPU tùy ý".
@Priority
Khi nào chạy .exe Ngen khi cài đặt. Bạn có thể chỉ định 0 đến 3, nhưng để biết thêm thông tin, hãy xem trang web chính thức.
Tóm tắt
Sau khi bạn tạo trình cài đặt, bạn có thể xác minh rằng việc cài đặt chuyên biệt đã thành công, cho dù hình ảnh gốc đã được tạo ra và đăng ký nó vào thư mục hội đồng.