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

pack コマンド

概要

エクステンションをパッケージ化します。

書式

NDExt pack [options]

オプション

オプション引数意味
-p, --project<project>対象プロジェクトのディレクトリを指定します。未指定の場合は現在のディレクトリ以下を探索して実行します。
-v, --ndver<ndver>動作の対象となるNext Designのバージョンです。未指定の場合は 3.0.0 です。
-c, --config<config>ビルド構成を指定します。DebugまたはReleaseを指定してください。未指定の場合はRelease です。
-o, --output<output>作成したパッケージの格納フォルダを指定します。未指定の場合は ndpackages です。
-d, --copydir<copydir>作成したパッケージを指定フォルダにもコピーします。

実行例

次のように実行すると、カレントディレクトリ以下にあるすべてのエクステンションのプロジェクト(.csproj)を探し、ビルドしてパッケージ化します。

c:\myproject\src> ndext pack

packコマンドの実行に成功すると出力フォルダにnupkgファイルが作成されます。NuGet Package Explorernupkgファイルを開くと次のようになっています。

備考

newコマンドで作成したプロジェクトの pkgContents フォルダ以下のファイルが、それぞれ samples, templates の下に配置されます。

作成したパッケージの公開方法および利用方法は、次のページをご覧ください。

パッケージのプロパティ設定

パッケージのプロパティ設定には、csprojファイルの情報を利用します。
これらの情報はVisual Studioを利用している場合、プロジェクトのプロパティの「パッケージ」タブで設定できます。下記は入力必須の情報です。

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

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

エクステンションのcsprojファイルの例
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net6.0-windows</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>

上記のプロジェクトファイル(csproj)に対して、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>