成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

.Net FrameWork下面如何生成AOT呢?

開發(fā) 前端
現(xiàn)在的.Net已經(jīng)到了.Net8了,它的AOT程序已經(jīng)可以單個(gè)Exe運(yùn)行在MacOS/Linux/Win等平臺(tái)上。但是在.Net FrameWorker上面如果想用AOT應(yīng)該怎么搞呢?

前言

有人問.Net FrameWorker可以AOT嗎?其實(shí)AOT預(yù)編譯,在.Net FrameWorker1.0里面就有了。它叫做Ngen,只不過當(dāng)時(shí)稱呼生成本機(jī)映像,實(shí)際上還是一個(gè)東西,也就是預(yù)編譯。很多小伙伴還在用.Net FrameWorker版本,本篇也來看下。

概括

1.介紹

現(xiàn)在的.Net已經(jīng)到了.Net8了,它的AOT程序已經(jīng)可以單個(gè)Exe運(yùn)行在MacOS/Linux/Win等平臺(tái)上。但是在.Net FrameWorker上面如果想用AOT應(yīng)該怎么搞呢?

微軟很早之前就提供了一個(gè)小工具,叫做:Ngen.exe。它跟你安裝Visual Studio的時(shí)候一起安裝進(jìn)來了。它的路徑一般的在:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe //注意這里是64位的

它就是讓不跨平臺(tái)的.Net Frameworker生成本地機(jī)器碼,然后執(zhí)行。

2.用法

應(yīng)該怎么用它呢?

一:代碼假如說你有以下.Net Frameworker代碼,項(xiàng)目名稱NgenDemo

static void Main(string[] args)
{
    Console.WriteLine("hello Ngen Call The Main Method");
    Console.ReadLine();
}

二.注意事項(xiàng):

注意一:把VS里的AnyCpu切換成X64注意二:打開VS命令行工具,選擇64位的注意三:要以管理員的身份運(yùn)行64位VS命令行工具三:生成比如把以上NgenDemo這個(gè)項(xiàng)目放到桌面上。在Visual Studio里面摁F5運(yùn)行下,在目錄:

C:\Users\Administrator\Desktop\NgenDemo\bin\x64\Debug

下面會(huì)生成:NgenDemo.exe。

打開VS命令行工具:

x64 Native Tools Command Prompt for VS 2022  //注意這里是64位的

運(yùn)行如下命令:ngen.exe install后面跟著NgenDemo.exe路徑

C:\Windows\System32>ngen.exe install "C:\Users\Administrator\Desktop\NgenDemo\bin\x64\Debug\NgenDemo.exe"
Microsoft (R) CLR Native Image Generator - Version 4.8.9065.0
Copyright (c) Microsoft Corporation.  All rights reserved.
1>    Compiling assembly C:\Users\Administrator\Desktop\NgenDemo\bin\x64\Debug\NgenDemo.exe (CLR v4.0.30319) ...

查看下生成的映像是否正確:

C:\Windows\System32>ngen.exe display "C:\Users\Administrator\Desktop\NgenDemo\bin\x64\Debug\NgenDemo.exe"
Microsoft (R) CLR Native Image Generator - Version 4.8.9065.0
Copyright (c) Microsoft Corporation.  All rights reserved.
NGEN Roots:
C:\Users\Administrator\Desktop\NgenDemo\bin\x64\Debug\NgenDemo.exe
NGEN Roots that depend on "C:\Users\Administrator\Desktop\NgenDemo\bin\x64\Debug\NgenDemo.exe":
C:\Users\Administrator\Desktop\NgenDemo\bin\x64\Debug\NgenDemo.exe
Native Images:
NgenDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null <debug>

可以看到映像已經(jīng)生成了。

到目錄:

C:\Windows\assembly\NativeImages_v4.0.30319_64 //注意它這個(gè)最后面的64是64位

里面看到一堆文件,它就是生成本機(jī)映像,以及本機(jī)緩存。此后在本機(jī)運(yùn)行的時(shí)候,可以直接雙擊NgenDemo.exe就可以運(yùn)行了。

如果想要卸載本機(jī)映像,運(yùn)行如下命令:

C:\Windows\System32>ngen.exe uninstall "C:\Users\Administrator\Desktop\NgenDemo\bin\x64\Debug\NgenDemo.exe"
Microsoft (R) CLR Native Image Generator - Version 4.8.9065.0
Copyright (c) Microsoft Corporation.  All rights reserved.
Uninstalling assembly C:\Users\Administrator\Desktop\NgenDemo\bin\x64\Debug\NgenDemo.exe

就可以卸載了。

以上就是.Net Framework生成的本機(jī)映像。它有一些缺陷,每個(gè)機(jī)器上都要生成一次,其次它的程序集緩存不能合并到一起,需要C:\Windows\assembly路徑下的文件支持,才能夠運(yùn)行。

所以后面微軟開啟了corert項(xiàng)目以及現(xiàn)在的nativeAOT項(xiàng)目,都是意圖取代它。

責(zé)任編輯:武曉燕 來源: 江湖評(píng)談
相關(guān)推薦

2024-10-11 14:42:59

2009-12-30 14:12:53

ADO.NET Fra

2023-07-11 00:17:58

.Net8AOTC

2023-07-09 23:55:16

C++RoslynILC

2010-01-06 15:56:18

.Net Framew

2009-08-26 14:23:14

C#.Net Fram

2009-12-15 11:28:34

.NET Framew

2023-09-11 08:40:34

AOTVMP代碼

2010-01-06 18:27:06

.Net Framew

2009-07-20 16:12:21

ASP.NET Fra

2010-01-05 10:24:16

.NET Framew

2009-06-05 09:49:18

修改.NET Frammscorlib.dl

2010-01-06 18:21:24

2009-07-09 09:28:19

.Net Micro

2012-01-09 16:00:56

2009-08-26 14:52:19

.NET Framew

2009-12-14 16:59:57

.NET Framew

2009-12-15 15:13:07

.NET Framew

2009-12-18 14:55:26

.Net FrameW

2010-01-05 09:35:07

.Net Framew
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美日韩精品亚洲 | www国产亚洲精品久久网站 | 色婷婷亚洲国产女人的天堂 | 久久久久久毛片免费观看 | 国产一区二区三区四区五区加勒比 | 亚洲国产成人精品在线 | 99久久中文字幕三级久久日本 | 一级毛片在线播放 | 欧美一级欧美三级在线观看 | 成人激情视频网 | 国产欧美精品一区二区色综合 | 久久国产精品精品国产色婷婷 | 天天操天天天 | 日韩在线精品视频 | 一级黄色片免费在线观看 | 久草.com | 成年人在线电影 | 久久精品 | 中文字幕在线一区二区三区 | 日韩在线一区二区 | 国产乱码精品一区二区三区忘忧草 | 欧美一级欧美三级在线观看 | 国产精品久久久久久久免费观看 | 日韩欧美视频免费在线观看 | 夜夜夜久久 | 91精品国产欧美一区二区成人 | 久久一区二区视频 | 成人在线视频网址 | 免费欧美 | 欧美久久影院 | 国产一区二区三区高清 | www.国产视频 | 国产精品久久久久久久久久 | 国产999精品久久久 精品三级在线观看 | 精品一区二区三区在线视频 | 黄色一级毛片 | 午夜免费观看 | 欧美精品被 | 国产在线视频一区二区 | 欧美日韩手机在线观看 | 国产精品海角社区在线观看 |