pack コマンド
エクステンションをパッケージ化します。エクステンションの配布はバイナリによる直接配布に加えてパッケージ機構による配布が可能です。パッケージ機構によってエクステンションの配布において、バージョン管理やインストールが簡単になります。packコマンドで作成したパッケージファイル(nupkgという拡張子のファイル)はエクステンションのパッケージソースフォルダやサーバに配置することでユーザにデプロイできます。
info
パッケージ機構を使わずにエクステンションをバイナリ配布する場合はこのコマンドを実行する必要はありません。
コマンド
NDExt pack [options]
オプション
Usage:
NDExt pack [options]
Options:
-p, --project <project> 対象プロジェクトのディレクトリを指定します。未指定の場合は現在のディレクトリ以下を探索して実行します。
-v, --ndver <ndver> 動作の対象となるNext Designのバージョンです。未指定の場合は `2.0.0` です。
-c, --config <config> ビルド構成を指定します。`Debug`または`Release`を指定して下さい。未指定の場合は`Debug` です。
-o, --output <output> 作成したパッケージの格納フォルダを指定します。未指定の場合は `ndpackages` です。
-d, --copydir <copydir> 作成したパッケージを指定フォルダにもコピーします。
プロジェクトファイルの設定
ここではVisual Studioのプロジェクトファイルでの設定項目について説明します。pack
コマンドは.NETのパッケージ化機能であるnuget
コマンドを内部的に呼び出しています。NDExt
はpack
コマンドのパッケージ化で、csprojファイルの情報を利用します。これらの情報はVisual Studioを利用している場合、プロジェクトのプロパティの「パッケージ」タブで設定できます。下記は入力必須の情報です。
設定項目 | csproj上のXMLタグ | 説明 |
---|---|---|
パッケージID | PackageId | パッケージを区別する一意の名前です。"MyCompany.SomePackage"のように指定します。 |
パッケージの説明 | Description | パッケージの説明に利用します。任意の文字列となります。 |
バージョン | Version | パッケージを識別するバージョンとして利用します。 “1.0.0”などになります。 |
作成者 | Authors | パッケージの作成者の情報です。会社名等を入力して下さい。 |
その他、Copyright
、PackageProjectUrl
を指定することでパッケージに情報を設定できます。
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UseWPF>true</UseWPF>
<PackageId>SampleExt</PackageId>
<Version>1.0.0</Version>
<PackageProjectUrl>https://www.your-web-here.com/</PackageProjectUrl>
<Authors>Me</Authors>
<Company>Me</Company>
<Product>SampleExt</Product>
<Description>SampleExtの説明</Description>
<Copyright>(Copyright Here)</Copyright>
</PropertyGroup>
...
</Project>
pack
コマンド実行後に次のようにnuspecファイルが生成されます。
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>SampleExt</id>
<version>1.0.0</version>
<authors>Me</authors>
<owners>Me</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<projectUrl>https://www.your-web-here.com/</projectUrl>
<Description>SampleExtの説明</Description>
<releaseNotes></releaseNotes>
<copyright>(Copyright Here)</copyright>
</metadata>
</package>
例
次のように実行すると、カレントディレクトリ以下にあるすべてのエクステンションのプロジェクト(csproj)を探し、ビルドしてパッケージ化します。
c:/myproject\src> ndext pack
pack
コマンドの実行に成功すると出力フォルダにnupkgファイルが作成されます。NuGet Package Explorerでnupkg
ファイルを開くと次のようになっています。
Next Designの拡張機能の設定
ボタンから、パッケージソース(ディレクトリもしくはnugetサーバ)を追加し、このnupkgファイルを配置すれば公開できます。
- extensionフォルダの下の数字は対応するNext Designのバージョンです。そのサブフォルダに配布するエクステンションのバイナリが配置されます。
- samples,templatesはNext Designのサンプル、テンプレート機能を登録する場合に利用します。
NDExt new
でプロジェクトファイルを作成した場合、pkgContents
フォルダのsamples
,templats
フォルダの内容となります。この下にNext Designのプロジェクトファイルを配置できます。