1. NET Coreコマンドラインインターフェース(CLI)ツール project.jsonを非推奨化し、.csprojファイルに置き換えました。これは初期の.NET Coreでプロジェクト設定ファイルとしてproject.json使われていましたが、Microsoftは問題を発見した後にこれを非推奨化したと推定されており、MSBuildは依然として.netのコンパイルツールとして使われていました。
MSBuildは以下の内容を紹介します:https://docs.microsoft.com/zh-cn ... sbuild?view=vs-2017
VSのコンパイルと生成を行う際、VSはMSBuildツールを呼び出すのを助けるだけで、.NETプロジェクトをコンパイルする際にVSツールをインストールする必要がなくなります。
.NET Core CLIツールコマンドは以下の通りです:
.NET コマンドラインツール (2.1.301) 使用法:dotnet [runtime-options] [path-to-application] 使用例:dotnet [sdk-options] [command] [arguments] [command-options]
path-to-application: アプリケーションへのパス.dll実行されるファイルです。
SDKコマンド: newは.NETプロジェクトを初期化します。 .NETプロジェクトで指定された依存関係を復元します。 .NETプロジェクトを即座に実行してください。 .NETプロジェクトをビルドします。 publishは.NETプロジェクトをデプロイ用に公開します(ランタイムも含む)。 テストはプロジェクトで指定されたテストランナーを使ってユニットテストを実行します。 パックしてNuGetパッケージを作成します。 project.jsonベースのプロジェクトをMSBuildベースのプロジェクトに移行します。 クリーンでクリーンな生成出力。 SLN修正ソリューション(SLN)ファイル。 参考文献に加えましょう。 プロジェクトから削除してください。 プロジェクトが参照またはインストールするツールをリストに出してください。 NuGetは追加のNuGetコマンドを提供します。 msbuildはMicrosoft Build Engine(MSBuild)を実行します。 vstestはMicrosoft Test Executionコマンドラインツールを実行します。 ストアは指定されたアセンブリをランタイムストアに格納します。 .NETの体験を拡張するツールをインストールしたり使用したりするツールです。 build-serverはビルドバージョンによって起動されたサーバーとやり取りします。 助けは助けを返します。
一般的な選択肢: -v|--verbosityはコマンドの詳細レベルを設定します。 許可される値はQ[UIET]、M[inimal]、N[Ormal]、D[etailed]、diag[nostic]です。 -h|--助けは助けを示す。
dotnetコマンドを実行してください --help でコマンドの詳細情報を取得してください。
sdk-options: --versionは使用中の.NET Core SDKのバージョンを示します。 --infoは.NET Coreの情報を表示します。 --list-sdksでインストールされたSDKを表示するために。 --list-runtimes はインストール済みの実行時を示します。 -d|--diagnosticsは診断出力を可能にします。
runtime-options: --additionalprobingpath <path> プローブポリシーとプローブをアセンブリでプローブするパス。 --fx-バージョンの、インストールされた共有フレームワークのバージョンをアプリケーション<version>を実行するために使用します。 --roll-forward-on-no-candidate-fx 「候補共有フレームワークへのロールフォワードなし」が有効になっています。 --additional-depsを<path>他のdeps.jsonファイルへのパスに割り当てます。
追加ツール(詳細は「dotnet [tool-name] --help」): 開発証明書 開発証明書の作成と管理。 ef Entity Framework Core コマンドラインツール。 sql-cache SQL Serverキャッシュ コマンドラインツール。 ユーザーシークレット 開発用ユーザーシークレットを管理します。 ファイルが変更されたときにコマンドを実行するファイルウォッチャーを起動してください。
2. コンピレーションとリリース
.NETプロジェクトをデプロイ用に公開します(ランタイムも含む)。 ドットネットパブリッシュ
C:\project\dotnet\test1>dotnet publish --help 使用法:dotnet publish [オプション]
オプション: -h、--ヘルプがヘルプ情報を表示します。 -o, --output <OUTPUT_DIR> は公開アイテムの出力ディレクトリを配置するために使われます。 -f, --framework <FRAMEWORK> 公開されるターゲットフレームワーク。 ターゲットフレームワークはプロジェクト文書内で明示されなければなりません。 -r, --runtime は<RUNTIME_IDENTIFIER>、指定されたランタイムに対してプロジェクトを公開します。 これを自己完結型デプロイメント作成時に活用してください。 デフォルトの操作は、フレームワークに依存したアプリを公開することです。 -c, --構成<CONFIGURATION>はプロジェクトの構成を生成するために使われます。 ほとんどのプロジェクトのデフォルト値は「Debug」です。 --version-suffix <VERSION_SUFFIX> は、プロジェクト内の $(VersionSuffix) プロパティの値を定義します。 --manifest <manifest.xml> パブリッシュステップで実行されるパッケージのリストを含むターゲットマニフェストファイルへのパスです。 --no-build:公開前にプロジェクトをビルドしないでください。 つまり――回復しないことを意味します。 --自己完結型の付随アプリケーションは.NET Coreランタイムを公開し、ターゲットマシンにランタイムをインストールする必要がなくなります。 ランタイム識別子が指定されている場合、デフォルトで「true」となります。 --no-restoreコマンドを実行しながら暗黙の復元を実行しないでください。 -v, --冗長さはコマンドの詳細度を設定します。 許可される値はQ[UIET]、M[inimal]、N[Ormal]、D[etailed]、diag[nostic]です。 --no-dependenciesはこのフラグをプロジェクト間の参照を無視し、ルートプロジェクトのみを復元するように設定します。 --強制力で、たとえ最後の復元が成功しても、すべての依存関係を解決するよう強制します。 これはproject.assets.jsonを削除するのと同等です。 実行の観点から見ると、CLIコマンドはパラメータを受け取り、「元の」MSBuildに呼び出して、目的のプロパティと実行したいターゲットを設定します。 これをよりよく説明するために、以下のコマンドを参照してください。
このコマンドはPublish設定を使ってアプリケーションをpubフォルダに公開します。 内部的には、このコマンドは以下のMSBuild呼び出しに変換されます:
アプリケーションのターゲットプラットフォームを定義してください
csprojファイルのセクション(アプリのターゲットプラットフォームを定義するために使われる)にタグを作成し <PropertyGroup> <RuntimeIdentifiers> 、各ターゲットプラットフォームごとにランタイム識別子(RID)を指定します。 RIDを区切るためにもセミコロンが必要です。 ランタイム識別子の一覧はRuntime Identifier Catalogで確認してください。 例えば、以下の<PropertyGroup>セクションでは、このアプリが64ビットのWindows 10オペレーティングシステムと64ビットのOS Xバージョン10.11で動作していることが示されています。
もしwin10 x64プラットフォーム下のディストリビューションのみを生成したい場合は、以下のコマンドを実行します。
出力フォルダ:C:\project\dotnet\test1\bin\release\netcoreapp2.1\win10-x64\publish。フォルダ全体に66Mがあり、かなり大きいです。下の図に示されています:
centos.7-x64プラットフォームでリリースパッケージを生成してください。7,000万個あり、これもかなり大きいです。Centos 7で公開して実行してみましょう (.NET Core SDKはCentOS 7システムにはインストールされていません)。
システム情報は以下の通りです:
[root@master ~]# Uname -a Linux master 3.10.0-862.el7.x86_64 #1 SMP 2018年4月20日金曜日 16:44:24 UTC GNU/Linux x86_64 x86_64 x86_64 [root@master ~]# 猫 /etc/redhat-release(紅帽子リリース) CentOS Linux リリース 7.6.1810(コア) ファイルを一時ディレクトリにアップロードし、通常通り出力できるtest1ファイルを実行しようとします。
[root@master ~]# MKDIRの温度 [root@master ~]# CD TEMP/ [root@master temp]# ./test1 -bash: ./test1: 権限が足りません [root@master temp]# CD .. [root@master ~]# chmod -R 777 temp/ [root@master ~]# CD TEMP/ [root@master temp]# ./test1 ハローワールド! [root@master temp]# エコー「http://www.itsvse.com」
http://www.itsvse.com [root@master時]#
3、. NET Core 実行識別子
.NET Core RID、RIDはRuntime Identifierの略です。 RID値は、アプリケーションが動作するターゲットプラットフォームを特定するために使われます。.NETパッケージでは、NuGetパッケージ内でプラットフォーム固有の資産を表現するためにRID値を使用します。 以下の値はRIDの例です:linux-x64、ubuntu.14.04-x64、win7-x64、またはosx.10.12-x64。 ネイティブ依存関係を持つパッケージの場合、RIDはパッケージを復元可能なプラットフォームを指定します。
<RuntimeIdentifier> プロジェクトファイルの要素でRIDを設定することができます。 複数のRIDは<RuntimeIdentifiers>、プロジェクトファイルの要素内でセミコロンの区切られたリストとして定義できます。
特定のオペレーティングシステムを表すRIDは通常、次のパターンに従います:[os]。 [バージョン]-[アーキテクチャ]-[追加修飾語]どこ:
- [os] はオペレーティングシステム/プラットフォームシステム名です。 例えば、Ubuntuです。
- [バージョン]はOSバージョンで、ドット(.)でフォーマットされます。 例えば、15.10。 バージョンは通常、異なるプラットフォームAPI周辺機器を持つ複数の離散バージョンを表すため、マーケティングリリースとしては適していません。
- [architecture] はプロセッサアーキテクチャです。 例えば:x86、x64、arm、またはarm64です。
- [追加補足]はプラットフォーム間をさらに区別しています。 例えば、AOTやCorertなどです。
具体的な紹介:https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog
4、. NET CoreはNuGetパッケージを作成します
.NET Standardおよび.NET Coreでは、すべてのライブラリはNuGetパッケージとしてリリースされるべきです。 実際、すべての.NET標準ライブラリはこのように公開され、使用されています。 これはdotnet packコマンドを使えば簡単に実現できます。
(終わり)
|