タイトル:ASP.NET MVCのコア(B)を達成するために開発スクラッチでのプラグイン-プロジェクトテンプレートを作成する方法
著者:Lamond呂
住所:https://www.cnblogs.com/lwqlun/p/11155666.html
出典:HTTPS ://github.com/lamondlu/Mystique
前回の記事では、我々はプラグインでASP.NET MVCのコアでApplicationPartを開発する方法を、一瞬のためにそれをデモするための最も簡単な例の1つを介して導入されました。最後に、我々は多くの問題が解決されるようになりました。
まず第一に、それ、問題を解決するために最初は、我々は、新しいプラグインするたびに再作成したプロジェクトを、作成、ライブラリの参照を追加し、手動でcsprojファイルを変更するたびに、非常に面倒です。操作のこの部分を削減する方法はありますか?
我々は、Visual Studioを使用してプロジェクトを作成するたびに、我々は、Visual Studioは、我々の選択のテンプレートに基づいてプロジェクトを作成することができるだけでなく、私たちはアセンブリ参照を必要とする、プロジェクトテンプレートを選択することができますが事前に設定されることを思い出して、ノー我々は、設定を繰り返す必要があります。だから我々はまだ独自のテンプレートの一部を作成することができますか?答えはイエスです。
本論文では、私はあなたが.NETのコアプロジェクト、流線操作のためのプロジェクトテンプレートを作成する方法を、お見せに来ます。
書き込みtemplate.jsonの#
プロジェクトテンプレートを作成したい場合は、我々は2つのことを行う必要があります。
- テンプレートとしてプロジェクトコードの作成
- 書き込みtemplate.jsonファイル
ここでは、以前のプロジェクトのDemoPlugin1を作成しているので、今回はテンプレートプロジェクトに直接変換することができます。
まず、現在のプロジェクトを追加し.template.config
、ディレクトリ、およびtemplate.jsonファイルを追加します。これは次のように読み取ります。
{
"author": "Lamond Lu",
"classifications": [ "Web/Plugins" ],
"name": "DemoPlugin1",
"identity": "LamondDynamicPlugins",
"shortName": "ldp",
"tags": {
"language": "C#" ,
"type":"project"
},
"sourceName": "DemoPlugin1",
"preferNameDirectory": true
}
設定手順:
Author
属性は必須、テンプレートの作成者を指定しますclassifications
属性を指定した分類テンプレートに必要name
あなたが使用する場合、テンプレートの名前を表しdotnet new
プロジェクトを作成する際に、必要なテンプレート名を指定しますidentity
これはオプション、テンプレートの一意の名前を表しますshortName
それは必要な、テンプレートの短い名前を表しtags
現在のテンプレートのラベルの数を指定します。sourceName
とき、文字列を指定しdotnet new
、時間指定されたパラメータの-n、-nパラメータ値は、交換してくださいsourceName
指定された文字列を。現在のプロジェクトは、私たちは、ファイル名を投影し、すべての名前空間を使用DemoPlugin1ですが、我々は新しいプロジェクトを生成できない場合、我々は交換する-nパラメータを指定にプロジェクトの名前を使用する必要があるので」、この名前を使用していますDemoPlugin1」、現在の場合はdotnet new
、プロジェクトの名前空間とプロジェクトファイル名のすべてが、新しいDemoPlugin2を使用するときに、プロジェクトが作成されるときのコマンドは、-nパラメータ値DemoPlugin2を指定しますpreferNameDirectory
同じ名前のビルドディレクトリかどうかは、オプションです。
template.json
詳細な構成リスト、興味のある学生は、以下のリンクを表示することができます。<https://github.com/dotnet/templating/wiki/Reference-for-template.json>を
使用してテンプレートを作成してCLI-DOTNET #
コードの書き込みが完了した後、我々は次のように使用できるdotnet-CLI
テンプレートプロジェクトをインストールするコマンドを。
dotnet new -i <PATH>
ここで
<PATH>
あなたは、現在のテンプレートプロジェクトディレクトリを指定
コマンドを実行した後、テンプレートの新しいローカルリストの出力は、我々はそれを見つけることができDemoPlugin1
、リスト内のテンプレートとして浮上しています。
使用するdotnet new
プロジェクトの作成に#を
テンプレートがローカルにインストールされている場合、我々は使用することができdotnet new
、我々は今、新しいプラグインを作成する例えば、私たちは、次のコマンドを使用することができ、プロジェクトを作成するコマンドを。
dotnet new ldp -n DemoPlugin2
コマンドを実行した後、対応するコードが出て生成されます。プロジェクトディレクトリに来て、我々は以前のことが判明しDemoPlugin1.csproj
たファイルの名前が変更されたDemoPlugin2.csproj
前のことを示す、template.json
指定されたファイルは、sourceName
私たちに正しい交換用プロジェクトファイル名助けを属性。
その後、我々は固有のコード・コントローラを見ることができ、その名前空間にも適切に置換されます。
どうでしょうか?これは、多くの前に手動で簡単な比率ではないでしょうか?
注:インストールしたばかりのテンプレートをアンインストールしたい場合は、使用する必要が
dotnet new --debug:reinit
使用され、本明細書のように、コマンドをdotnet new -u
コマンドは削除されないことがあり、dotnet new -u
テンプレートパッケージダウンnuget.orgからダウンロードにのみ適用されます
どのようにテンプレートがNugetパッケージにパッケージ化#
プロジェクトテンプレートの道を作成するには、このディレクトリを使用してこれらのプロジェクトに加えて、我々はまた、Nugetパッケージを使用するために他の人のためのテンプレートとしてパッケージ化することができます。
あなたはここで、我々は最初のメタデータファイルNugetパッケージを作成する必要があるテンプレートを作成したい場合、我々は命名しますLamondDynamicPlugin.nuspec
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>LamondDynamicPlugin</id>
<version>1.0.0</version>
<description>
Creates dynamic plugin in asp.net core
</description>
<authors>Lamond Lu</authors>
<packageTypes>
<packageType name="Template" />
</packageTypes>
</metadata>
</package>
ここで設定したプロパティは、唯一の注意点は、非常にシンプルな
packageType
セットでなければなりませんTemplate
。
あなたは良いメタデータファイルを作成した後、我々は使用することができNuget pack
、これは指定する最初のパラメータコマンドで、パッケージにコマンドを.nuspec
配置されているファイルへのパスを。
nuget pack DemoPlugin1/LamondDynamicPlugin.nuspec
ランニングの後、Nugetが生成されるLamondDynamicPlugin.nupkg
ファイルを、これは我々がNugetパッケージと呼んでいます。
テンプレートパッケージNugetの道をインストールするには、我々は同じコマンドを使用することができますdotnet new -i
dotnet new -i LamondDynamicPlugin.nupkg
あなたが他の人にテンプレートを共有することができるようにもちろん、一般的に、我々は、nuget.orgにこのNugetパッケージを公開します。
Nugetに公開した後、我々はそれを使用することができますLamondDynamicPlugin.nuspec
ユニークなIDが定義されたテンプレートをインストールします。テンプレートを装着する前に、コマンドのディレクトリからのインストールは同じです。
dotnet new -i LamondDynamicPlugin
テンプレートをアンインストールしたい場合は、単に使用dotnet new -u [Nuget包]
缶を。
dotnet new -u LamondDynamicPlugin
要約#
この記事では、私は方法を示しdotnet-CLI
.NETのコアプロジェクトテンプレートを作成するには、どのように使用する他の人のためNugetプロジェクトテンプレートをパッケージ化し、これは、プラグインを手動我々の前に厄介な問題を作成するプロジェクトを解決します。次の問題は、私は滞在が調整され、コアクラスライブラリを作成し、ビジネス・ロジック・モジュールから抽象化しようとします。