「NuGetパッケージを追加するだけでビルドタスクが自動実行されるやつの作り方」の版間の差分
ナビゲーションに移動
検索に移動
Administrator (トーク | 投稿記録) (ページの作成:「== Nugetパッケージになるライブラリプロジェクトを作る == : 例 NugetBuildTask1 == プロジェクト名と同じtargetsファイルを作る == プ…」) |
Administrator (トーク | 投稿記録) |
||
(同じ利用者による、間の7版が非表示) | |||
1行目: | 1行目: | ||
− | == | + | == ライブラリプロジェクトを作る == |
− | : | + | NuGetパッケージ(ライブラリプロジェクト)を新規作成する。 |
+ | : 例:NugetBuildTask1 | ||
== プロジェクト名と同じtargetsファイルを作る == | == プロジェクト名と同じtargetsファイルを作る == | ||
14行目: | 15行目: | ||
== プロジェクトファイルをテキストエディタで編集する == | == プロジェクトファイルをテキストエディタで編集する == | ||
− | + | プロジェクトファイル(csprojファイル)をテキストエディタで編集してNuGetのパッケージ情報やNuGetに含めるファイルを記述する。 | |
− | + | : 例:NugetBuildTask1.csproj | |
− | : | ||
<source lang="xml"> | <source lang="xml"> | ||
<Project Sdk="Microsoft.NET.Sdk"> | <Project Sdk="Microsoft.NET.Sdk"> | ||
42行目: | 42行目: | ||
</source> | </source> | ||
− | + | なお、ItemGroupタグの中身はContentタグを使った記法も存在するらしいが、targetsファイルについてはNoneタグが推奨らしい。なんでかは知らん。[[github]]上のこの手法を使っているプロジェクトを見て回った限りでは両方の記法が乱立しているので知識として覚えておいた方がいい。 | |
<source lang="xml"> | <source lang="xml"> | ||
<ItemGroup> | <ItemGroup> | ||
66行目: | 66行目: | ||
== デバッグ == | == デバッグ == | ||
コンソールプロジェクトなどを作って上記のNuGetを追加してみる。 | コンソールプロジェクトなどを作って上記のNuGetを追加してみる。 | ||
+ | |||
+ | [[category: .NET]] | ||
+ | [[category: NuGet]] |
2024年4月17日 (水) 03:03時点における最新版
目次
ライブラリプロジェクトを作る[編集 | ソースを編集]
NuGetパッケージ(ライブラリプロジェクト)を新規作成する。
- 例:NugetBuildTask1
プロジェクト名と同じtargetsファイルを作る[編集 | ソースを編集]
プロジェクト名というかNuGetのパッケージIDと同一のtargetsファイルを作る。
- 例: NugetBuildTask1.targets
<Project>
<Target Name="HelloWorld" AfterTargets="build">
<Message Text="Hello, World!" Importance="high" />
</Target>
</Project>
プロジェクトファイルをテキストエディタで編集する[編集 | ソースを編集]
プロジェクトファイル(csprojファイル)をテキストエディタで編集してNuGetのパッケージ情報やNuGetに含めるファイルを記述する。
- 例:NugetBuildTask1.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<!-- nugetのパッケージ情報 -->
<PackageId>NugetBuildTask1</PackageId>
<Version>1.0.0</Version>
<Authors>Your Name</Authors>
<Description>Your Description</Description>
</PropertyGroup>
<!-- nugetに含めるファイルを列挙 -->
<ItemGroup>
<!-- targetsファイルはbuildディレクトリに格納すること -->
<!-- targetsファイルの名前はPackageIdと同一にすること -->
<None Include="NugetBuildTask1.targets" Pack="true" PackagePath="build" />
</ItemGroup>
</Project>
なお、ItemGroupタグの中身はContentタグを使った記法も存在するらしいが、targetsファイルについてはNoneタグが推奨らしい。なんでかは知らん。github上のこの手法を使っているプロジェクトを見て回った限りでは両方の記法が乱立しているので知識として覚えておいた方がいい。
<ItemGroup>
<Content Include="NugetBuildTask1.targets">
<Pack>true</Pack>
<PackagePath>build</PackagePath>
</Content>
</ItemGroup>
NuGetパッケージを作る[編集 | ソースを編集]
Visual Studioであればメニューの「ビルド」の「パック」を実行する。
コマンドラインの場合は以下のようになる。
$ dotnet pack
NuGetサーバーにぶち込む[編集 | ソースを編集]
デバッグ用に壮大なNuGetサーバーを立てるのは面倒なのでdockerあたりでシンプルなのを探してくるとよい。
デバッグ[編集 | ソースを編集]
コンソールプロジェクトなどを作って上記のNuGetを追加してみる。