ディレクトリ
Visual Studioのコンポーネントのインストールを確認する1.
リポジトリはNuGetのILCompilerを持っています2。
この記事では、使用が表示されます.NETのコア3 のサンプルプログラムを。我々は、実行可能ファイルにそのアプリケーションを生成するために、ローカルの開発者のプロセスを検討し、従わなければなりません。我々は確認する方法を見ていきますVisual Studioがコンポーネントをインストールし、追加したILCompiler のNuGet リポジトリ依存関係は、プロジェクト、ライト・アプリケーションに追加され、ローカルプログラムの実行可能ファイルが生成されます。
説明:コンパイルコードを管理?
この機能は、中に組み込まれていないSDK が、ためにC #から、開発者が提供され、.NETのコア3 オリジナル.csproj機械実行可能ファイルを生成するための驚くべき方法を。私の視点から、それはあなたがこの方法です(専門的な方法でソフトウェアを配布したいということです:) キーポイント。私は(私は参考のためにソースコードを提供することを忘れていなかった)優れた本の中でこの機能が見つかりました:使用.NETのコア3 とのVisual Studio 2019をマルチプラットフォームのデスクトップアプリケーションを開発します。
このツールを使用すると、.NETのコア3 と同時(パイソン、ノード、のJava パフォーマンス)試合は、パフォーマンス向上のためのアプリケーションの開発を改善するために(最後に、C #は、ほぼ達しC ++ のパフォーマンスレベルを)。
どのように動作します:原則
.NETのコアは、生成するためのプロジェクトを管理し、ランタイムAOTを画像(事前に)。このコードをビルドするには、擬似コンパイラのMSIL への変換プログラムC ++ (これは関係なく、あなたが使用したタグのであり、アプリケーションの実行可能ファイルを構築するために、結果をコンパイルローカルOSが必要とC ++ の理由ツールを)。(その主な開発者の一人で、マイクロソフトで男)マット・ウォーレンは 十分に文書化されています。このプロセス全体を。
回復するには、コンパイラは本当にネイティブ実行ファイル、および生成ILの実行時にアセンブリをJIT (ジャストの時間にコンパイルされたコードコンパイラ)。
アプリケーション
ネイティブの実行可能ファイルを使用することにより提供明らかな利点は、とんでもないパフォーマンスの向上、取り付けフレームの欠如です。
主に最も適したプログラムが使用するローカルフォーマットのデスクトップアプリケーション(サービスコンソールまたはGUI ため、この種のアプリケーションのための)は、ローカル・コンピューティングの利点は明白です。
一方、のためのWeb アプリケーション(ウェブアプリケーションとAPI の使用の異なる種類の展開のために)、メリットはそれほど明白ではありません。でウェブサーバ環境、ほとんどの場合、フレームはそれほど明白ではないローカル実行可能な方法を使用して、コンピュータにインストールされています。
サンプルプログラム
この例では使用しています.NET CORE3を。開発者のためのレッツ・レビュー・プロセスは、その用途に従わなければならないネイティブ実行可能ファイルを作成します。
1. 確認のVisual Studio コンポーネントがインストール
ILCompilerは、必要に追加.NETコア3 (開発のフレームワークを使用するために必要なだけでなく、すべての成分として)リアフレーム提供することが必要であるC ++ デスクトップ機能を。
これは、あなたの中に絶対必要であるVisual Studioが上にインストールC ++ の関数:
2. [追加]を持っているILCompiler のNuGet リポジトリを
専用NuGetのリポジトリには、真のローカル必須としてコンパイルされた実行可能ファイルが含まれMicrosoft.Dotnet.ILCompilerの依存関係を。
リポジトリのURLは次のとおりです。
HTTPS ://dotnetfeed.blob.core.windows.net/dotnet-core/index.json。
あなたはそれを追加する必要がありますNuGetの使用している場合は、ソースリポジトリのVisual Studioを、あなたは下の画像に従わなければならない1 に追加します。
画像1
3. プロジェクトへの依存
あなたは、図できる2を利用可能なパッケージのリストに示さMicrosoft.Dotnet.ILCompilerを追加します。チェックすることを忘れないでください" プレリリース版含める『ボックス(パッケージがまだラベル付けされているため、』アルファ」バージョン)。
画像2
4. アプリケーションのコーディング
例えば階乗コンソールアプリケーションの実行、および各レベルを表示する(ステップごとに計算された)、そして最終結果は赤色で表示される(グルービー!)。
これは、ソースコードです:
using System;
namespace Net3Factorial
{
class Program
{
static long Factorial(int x)
{
long result = 1;
Console.ForegroundColor = ConsoleColor.Blue;
for (int i = 1; i <= x; i++)
{
result = result * i;
Console.WriteLine("Step {0}: {1}", i, result);
}
return result;
}
static void Main(string[] args)
{
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.Green;
Console.Clear();
Console.WriteLine("Enter the Integer for the factorial calculation:");
int num = Convert.ToInt32(Console.ReadLine());
long f = Factorial(num);
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("The Factorial of {0} is: {1}\n", num, f);
}
}
}
ローカル生成したプログラムの実行可能ファイル
プロジェクトのデバッグおよびテストしたら、あなたは今、ローカルアプリケーションの実行可能ファイルを生成します。前記.csprojのファイルがローカルに生成された実行可能ターゲットプラットフォーム識別子(実行含まなければならないのRIDを)。
<runtimeidentifier>win-x64</runtimeidentifier>
あなたが使用している場合のVisual Studio 2019を、あなたが使用することができ、「リリース」に示すように、ローカルの実行可能ファイルを生成するには、コマンド(項目のコンテキストメニュー項目)を3 以下。
画像3
コマンドラインを好む場合は、使用できるCLI コマンド「DOTNET公開を」。
結論
実行可能ファイルを生成すると、ローカルでの.NETのコア3 の重要な利点、あなたが恩恵を受けるのC #の高生産性、性能、ほとんど古典の使用C ++ 良好なパフォーマンスを実現することができるよう。
本明細書に記載するように、ILCompilerのでライブラリのWindows 上で使用するが、LinuxのとはMac OS Xはまた、上で使用することができます。