SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Azureのクラウド環境でDevOpsを実現する「Azure DevOps」入門

「Azure Artifacts」でパッケージ管理を効率化しよう

Azureのクラウド環境でDevOpsを実現する「Azure DevOps」入門 第5回

  • X ポスト
  • このエントリーをはてなブックマークに追加

Azure Artifactsを使ってみよう(1)

 ここからは実際にAzure Artifactsを使用してパッケージの管理を体験してみましょう。今回はNuGetパッケージを例にして、フィードの作成からパッケージの公開・利用までの流れを説明します。

フィードの作成

 まず、Azure DevOpsプロジェクトにログインし、左側のメニューから「Artifacts」を選択します。初回アクセス時は「Create Feed」ボタンが表示されるので、これを選択してフィードを作成します。

図1:Azure Artifactsでフィードを作成する
図1:Azure Artifactsでフィードを作成する

 フィード作成画面では以下の項目を設定します。

  • Name:フィードの名前
  • Visibility:フィードの公開範囲
    • Members of <組織名>:組織メンバーのみアクセス可能
    • Specific people:指定したユーザーのみアクセス可能
  • Upstream sources:外部パッケージソースの利用
    • Include packages from common public sources:パブリックソースからのパッケージも利用
  • Scope:フィードの管理範囲を設定
    • Project:特定のプロジェクトに限定したフィード(そのプロジェクト内でのみ利用可能)
    • Organization:組織全体で共有するフィード(複数のプロジェクトから利用可能)

 Scopeの選択は重要です。Organizationスコープでは組織内の全プロジェクトからアクセス可能になり、プロジェクト間でのライブラリ共有が容易になります。

 一方、Projectスコープでは特定のプロジェクト専用のパッケージ管理ができ、セキュリティと管理の観点でより厳密な制御が可能です。

図2:フィードの新規作成画面
図2:フィードの新規作成画面

 設定が完了したら「Create」ボタンでフィードを作成します。

パッケージの公開

 次に、開発したライブラリをNuGetパッケージとして公開してみましょう。Visual Studio Codeを使用してプロジェクトを作成し、Azure Artifactsに公開する手順を説明します。

(1)Visual Studio Codeでのプロジェクト作成

 まず、任意の場所に新しいフォルダを作成します。フォルダ名は「WingsMathLibrary」とします。

 Visual Studio Codeを開き、メニューから「ファイル」→「フォルダーを開く」を選択し、作成したフォルダを開きます。次に、VS Codeの拡張機能「C# Dev Kit」がインストールされていることを確認してください。インストールされていない場合は、拡張機能ビューから検索してインストールします。

 フォルダを開いたら、コマンドパレット(Ctrl+Shift+P または Cmd+Shift+P)を開き、「.NET: 新しいプロジェクト」と入力して選択するとプロジェクトテンプレートの選択画面が表示されるので、「クラス ライブラリ」を選択します。次にプロジェクト名の入力が求められるので、「Wings.MathLibrary」と入力します。

図3:プロジェクト名を入力
図3:プロジェクト名を入力

 これで、クラスライブラリプロジェクトが作成されます。エクスプローラーパネルにプロジェクトファイルが表示されることを確認してください。

(2)ライブラリのコード実装

 作成されたClass1.csファイルを削除し、MathLibrary.csファイルを新規作成し簡単な数学ライブラリの機能を実装します。

[リスト1]数学ライブラリクラスの実装(MathLibrary.cs)
using System;

namespace Wings.MathLibrary
{
    /// <summary>
    /// 基本的な数学計算を提供するクラス
    /// </summary>
    public class Calculator
    {
        /// <summary>
        /// 二つの整数を加算します
        /// </summary>
        public int Add(int a, int b)
        {
            return a + b;
        }
        
        /// <summary>
        /// 二つの整数を乗算します
        /// </summary>
        public int Multiply(int a, int b)
        {
            return a * b;
        }
        
        /// <summary>
        /// 二つの整数を除算します
        /// </summary>
        public double Divide(int a, int b)
        {
            if (b == 0)
                throw new DivideByZeroException("ゼロで割ることはできません");
            return (double)a / b;
        }
    }
}

(3)プロジェクトファイルの編集

 Wings.MathLibrary.csprojファイルを開き、パッケージ情報を追加します。

[リスト2].csprojファイルの編集(Wings.MathLibrary.csproj)
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <!-- .NETのターゲットフレームワークを指定 -->
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    
    <!-- NuGetパッケージ情報 -->
    <PackageId>Wings.MathLibrary</PackageId>        <!-- パッケージの一意な識別子 -->
    <Version>1.0.0</Version>                            <!-- パッケージのバージョン -->
    <Authors>Wings Development Team</Authors>        <!-- パッケージの作成者 -->
    <Company>Wings</Company>                        <!-- 会社名 -->
    <Description>社内用数学計算ライブラリ</Description>    <!-- パッケージの説明 -->
    <PackageTags>math;calculation;utility</PackageTags>  <!-- 検索用タグ -->
  </PropertyGroup>
</Project>

 Wings.MathLibrary.csprojファイルには、クラスライブラリをNuGetパッケージとして公開するために必要な情報を追記します。

(4)パッケージのビルドと公開

 ターミナルでコマンドを実行してパッケージをビルドし、Azure Artifactsに公開します。

 まずは公開するにあたって必要となるPersonal Access Tokenを取得します。Personal Access Tokenの取得は、Azure DevOpsの右上の設定アイコンから「Personal access tokens」を選択し、「New Token」で作成できます。

図4:Personal Access Tokenの作成
図4:Personal Access Tokenの作成

 任意の名称を入力し、「Scopes」で「Custom defined」を選択して「Packaging」内の「Read, write, & manage」というスコープにチェックを入れて「Create」ボタンでトークンを作成します。作成するとトークンが画面上に表示されるので必ずこのタイミングでコピーをしておきます。

図5:Personal Access Tokenの作成画面
図5:Personal Access Tokenの作成画面

 Personal Access Tokenが作成できたら、以下のコマンドを実行していきます。

[リスト3]パッケージのビルドと公開
# パッケージのビルド
dotnet pack --configuration Release

# NuGetのパッケージソースとしてAzure Artifactsのフィードを追加する(初回のみ)
dotnet nuget add source "https://pkgs.dev.azure.com/{organization}/{project}/_packaging/{feedname}/nuget/v3/index.json" --name "WingsFeed" --username "任意のユーザー名" --password "{Personal Access Token}" --store-password-in-clear-text

# パッケージの公開
cd Wings.MathLibrary
dotnet nuget push "./bin/Release/Wings.MathLibrary.1.0.0.nupkg" --source "WingsFeed" --api-key "any-string"

 上記の3つのコマンドを順番に実行することで、ローカルで開発したライブラリをAzure Artifactsに公開し、他のプロジェクトから利用できるようになります。

 「dotnet pack」コマンドは、.NETプロジェクトからNuGetパッケージ(.nupkgファイル)を作成します。

 「dotnet nuget add source」コマンドは、NuGetパッケージソースとしてAzure Artifactsのフィードを追加します。その際、ソースURLとしてAzure ArtifactsのURL「https://pkgs.dev.azure.com/{organization}/{project}/_packaging/{feedname}/nuget/v3/index.json」を指定します。{organization}、{project}、{feedname}には使用しているDevOpsの組織名、プロジェクト名、Azure Artifactsのフィード名を入力して下さい。

 最後に「dotnet nuget push」コマンドで、作成したNuGetパッケージを指定したフィードに公開します。

 パッケージの公開に成功すると、Azure Artifactsの画面上でパッケージを参照できるようになります。

図6:パッケージを公開後の画面
図6:パッケージを公開後の画面

 これで、パッケージを利用できるようになりました。

次のページ
Azure Artifactsを使ってみよう(2)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Azureのクラウド環境でDevOpsを実現する「Azure DevOps」入門連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 秋葉 龍一(アキバ リュウイチ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/22283 2025/10/06 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング