この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 33299|答える: 2

[.NET Core] 新しい.NET Core機能は単一ファイルの実行ファイルをリリースします

[リンクをコピー]
2019年9月28日 16:38:47に投稿 | | | |
数日前、Microsoftは.NET Core 3.0をリリースし、最大の強化の一つはWindowsデスクトップアプリケーション(Windows専用)のサポートです。 .NET Core 3.0 SDK Windows Desktop Componentを使用することで、Windows FormsやWindows Presentation Foundation(WPF)アプリケーションを移植できます。 明確にするために、WindowsデスクトップコンポーネントはWindowsでのみサポートされ含まれています。

SDKダウンロードアドレス:ハイパーリンクのログインが見えます。

.NET Coreの機能を紹介するためのリンク:

ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。

特徴には以下のものがあります:

  • C#を使って、豊かでインタラクティブなクライアント向けウェブアプリを構築しましょう。
  • gRPCを使って高性能なバックエンドサービスを作成しましょう。
  • SignalRは現在、自動再接続およびクライアントからサーバー間のフローをサポートしています。
  • OpenAPIのドキュメントを使って、Web API用の強い型付きクライアントコードを生成しましょう。
  • エンドポイントルーティングはフレームワークを通じて統合されています。
  • KestrelはデフォルトでHTTP/2が有効になっています。
  • 統合されたウェブAPIとシングルページアプリの認証サポート。
  • 証明書およびKerberos認証もサポートされています。
  • 新しいSystem.Text.Jsonシリアライザーを統合します。
  • 新しいユニバーサルホスティングは、依存性注入、設定、ログ作成などの共通のマネージドサービスを設定します。
  • 長期的なサービスを構築するための新しいワーカーサービスのテンプレート。
  • 新しいイベントカウンターは、1秒あたりのリクエスト数、総リクエスト数、現在リクエスト数、失敗リクエスト数に対して作成されます。
  • IISでホストされた起動エラーは、Windowsイベントログに報告されます。
  • パイプライン統合をリクエストします System.IO.Pipelines。
  • 技術スタック全体にわたるパフォーマンス向上。

下の図のように、VS 2019で新しい.NET Core 3.0コンソールプロジェクトを作成しましょう。



Newtonsoft.Jsonパッケージを参照して、以下のように数行のコードを書いてください:


VS Regenerateを右クリックしてからプロジェクトのbinディレクトリを開くと、:demo1.exeファイルやNewtonsoft.Json.dllファイルを含む複数のファイルが生成されます。



単一ファイルの実行ファイルを公開する

方法1:

プロジェクトディレクトリで以下のコマンドを実行します:



C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64フォルダを開くと、多くのdllファイルが生成され、publishフォルダも存在します。

publishフォルダに行ってください。ビュー demo1.exeのサイズは66Mで、フォルダ外のすべてのファイルと同じサイズです、下図に示されているように:



生成された単一の実行ファイルは、プログラム実行に必要な環境を実際に含み、ターゲットコンピュータがSDKをインストールする必要がなく、その欠点としてファイルサイズが非常に大きくなります。

方法2:

プロジェクトファイルを右クリックして編集し、PublishSingleFileノードの設定を追加します。コードは以下の通りです:

次に右クリックして「公開」ボタンをクリックします。


アセンブリリンク

.NET Core 3.0 SDKには、ILを解析し、未使用のアセンブリをクリップすることでアプリのサイズを縮小できるツールが付属しています。

自己完結型アプリは、メインのパソコンに.NETをインストールすることなくコードを実行するためのすべての要素を備えています。 しかし多くの場合、アプリはフレームワークの一部だけで動作し、他の未使用ライブラリは削除できます。

.NET CoreにはILリンカーツールを使ってアプリのILをスキャンする設定が含まれています。 このツールは必要なコードを検出し、未使用ライブラリをクリップします。 このツールは一部のアプリケーションの展開サイズを大幅に削減できます。

このツールを有効にするには、<PublishTrimmed>プロジェクトの設定を使い、自己完結型アプリを公開してください:

.NET Core CLI


66Mファイルを生成し、設定を追加した後、収容人数は35Mとなり、30Mの稼働率は減少しました

リフレクションや関連する動的機能(ASP.NET CoreやWPFを含む)を使うアプリケーションやフレームワークも検討してください通常は切断時に損傷しますこの破損は、リンカーがこの動的な挙動を認識しておらず、どのフレームタイプが反映に必要かを判断できないために発生します。 ILリンカーツールはこの状況を検出するように設定できます。

何よりも、切った後に必ず塗ることが大切です試験の実施


(終わり)






先の:Ajaxで外部変数に値を割り当てられない問題を解決してください
次に:C言語は非常に強力ですが、どの言語で書かれているのでしょうか?
2019年9月29日 09:30:44に投稿 |

共有してくれてありがとう
 地主| 2019年10月30日 09:14:15に投稿 |
ReadyToRun画像
アプリケーションセットをReadyToRun(R2R)形式にコンパイルすることで改善できます。 NET Coreアプリケーション起動時間。

R2Rはプリコンパイル(AOT)の一種です。 R2Rバイナリは、アプリケーションロード時にリアルタイム(JIT)コンパイラが行う作業量を減らすことで、起動時のパフォーマンスを向上させます。 バイナリにはJITが生成するネイティブコードに似ています。 しかし、R2Rバイナリは中間言語(IL)コード(場合によっては依然として必要)と同じコードのネイティブバージョンを含むため、より大きいです。 R2Rは、Linux x64やWindows x64など特定のランタイム環境(RID)をターゲットにした自己完結型アプリを公開した場合にのみ利用可能です。



まずコメントを残し、<PublishTrimmed>その後付け加えます<PublishReadyToRun>:

免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com