メインコンテンツまでスキップ

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コマンドを内部的に呼び出しています。NDExtpackコマンドのパッケージ化で、csprojファイルの情報を利用します。これらの情報はVisual Studioを利用している場合、プロジェクトのプロパティの「パッケージ」タブで設定できます。下記は入力必須の情報です。

設定項目csproj上のXMLタグ説明
パッケージIDPackageIdパッケージを区別する一意の名前です。"MyCompany.SomePackage"のように指定します。
パッケージの説明Descriptionパッケージの説明に利用します。任意の文字列となります。
バージョンVersionパッケージを識別するバージョンとして利用します。 “1.0.0”などになります。
作成者Authorsパッケージの作成者の情報です。会社名等を入力して下さい。

その他、CopyrightPackageProjectUrlを指定することでパッケージに情報を設定できます。

エクステンションのcsprojファイルの例
<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ファイルが生成されます。

生成された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 Explorernupkgファイルを開くと次のようになっています。

Next Designの拡張機能設定ボタンから、パッケージソース(ディレクトリもしくはnugetサーバ)を追加し、このnupkgファイルを配置すれば公開できます。

  • extensionフォルダの下の数字は対応するNext Designのバージョンです。そのサブフォルダに配布するエクステンションのバイナリが配置されます。
  • samples,templatesはNext Designのサンプル、テンプレート機能を登録する場合に利用します。NDExt newでプロジェクトファイルを作成した場合、pkgContentsフォルダのsamples,templatsフォルダの内容となります。この下にNext Designのプロジェクトファイルを配置できます。