見出し画像

103. NuGet パッケージの更新 ~ その1

前回の記事                        次回の記事

はじめに

前回、”変換による実装”で使うツール群の更新順序が確定しました。
NuGet パッケージの更新作業手順は大体一緒なので、最初に更新する

を例に、作業の内容を説明することにします。
また、前々回で解説した通り、開発に使っていた Desktop PC の SSD が壊れてしまい、再インストールした結果、開発環境が真っ新になってしまったので、必要なツールのインストールやプロジェクト環境の復活に関する作業も交えて描いていくことにします。


kae-utilities

この github の リポジトリでは、以下の4つの NuGet パッケージのソースコードとビルドに関する情報が管理されています。

  • Kae.Utility.Json

  • Kae.Utility.Logging

  • Kae.Utility.Logging.WPF

  • Kae.Utility.Logging.Web

この4つのパッケージは、Visual Studio 2022 では、それぞれが一つのプロジェクトで、それらは一つのソリューションとしてまとめられていて一括開発しています。
Visual Studio 2022 がプロジェクト群を管理するフォルダーは、デフォルトで、

C:\Users\UserName\source\repos

で、このパッケージは、OneDrive によるクラウドへのバックアップはデフォルトでは行われてはいません。
現時点で、過去の開発で使っていたフォルダーはきれいさっぱり消えてしまっています。
Desktop PC の修理前に一応、このフォルダーのバックアップコピーは作ってはいたのですが、いろいろな意味で汚れていたので、この際、Github のリポジトリから clone して復活することにします。

開発環境

ここで、私の開発環境を紹介しておきます。
他の Github を使っている、オープンソース系の開発者がどうやっているのか、具体的に見たことがないのでわかりませんが、私の環境は下図のように、Github から clone したフォルダーでの直接開発はしていません。

開発環境

NuGet パッケージの登録や、クラウドサービス利用など、ユーザー認証系が絡む場合は、それらにアクセスするための秘密情報が、Visual Studio のプロジェクトに記述されることがあります。この秘密情報がインターネットでだれでも参照できる github.com に Push されてしまうと、何をされるかわからないのでとても危険です。秘密情報が記載されたファイルをローカル側のリポジトリで checkin してしまうと、github.com への Push 時に差分情報も含め公開されてしまいます。もしかすると、秘密情報が書かれたファイルを、github.com に Push しない方法があるのかもしれませんが、危険なので、秘密情報が書かれたファイルは、Visual Studio 開発で使うプロジェクトのほうだけに格納しておくようにしています。
Visual Studio 側で一通り開発作業が終わったら、Github.com と同期しているプロジェクト環境(以下、”左の環境”とします)と、Visual Studio 側のプロジェクト環境(以下、”右の環境”とします)の差分(diff)、WinMerge というツールで目視しながら、右の環境で更新したファイルのみを左の環境にマージします。そして、左の環境で、Github Desktop というアプリケーションを使って checkin し、github.com に push します。

Visual Studio Code でも Visual Studio 2022 でも、github.com と直接やり取りする機能はあるのですが、昔々、マイクロソフトのエバンジェリスト時代、サンプルコードを github.com にアップしたときに、うっかり、Storage Account のキーが書かれたファイルを Commit してしまったことがあります。あわててそのキーを隠したファイルを Push しても、ファイル履歴にしっかり残ってしまいます。github.com のファイル履歴を削除するのはほぼ不可能なので、泣く泣く、貴重な履歴が詰まったリポジトリを削除したことが数度(一回で学べよって感じですが:苦笑)やってしまい、今のやり方に落ち着いています。

まぁ、そんなわけで、Visual Studio 2022 のほかに、以下の二つのツールを事前にインストールしておきます。

NuGet とは

ここで NuGet サービスを解説しておくことにします。
詳しくは、

NuGet のドキュメント | Microsoft Learn

に書かれているので一度読んでみてください。マイクロソフトが運営するライブラリ共有サービスです。マイクロソフトだけでなく、ユーザー登録すれば誰でも自分が作ったパッケージを世界中の開発者に対して公開して使ってもらうことができます。ほとんどのパッケージは MIT や GNU などのオープンソースライセンスの元に公開されています。
仕組みはこんな感じ。

https://learn.microsoft.com/ja-jp/nuget/media/nuget-roles.png

話がそれますが、私がマイクロソフトに入社した2006年当時、マイクロソフトはオープンソースムーブメントに否定的でした。まぁね、LINUX なんかは特に競合だったので。しかし時代は変わり、CEO はバルマーから I Love Linux!を公言するサティアナデラになって、今や、マイクロソフトは最も多くのオープンソースを提供する IT 企業になりました。いやぁ、時代は変わるものですね。。。
ちなみに、マイクロソフトがオープンソースとして初めて提供したソフトウェアは、昔私がガンガン普及啓発していた、.NET Micro Framework なんだよー。その前から、Windows CE はソースコード公開していたけど、シェアードソースという準オープンソースライセンスでした。

話を戻すと、NuGet サービスはだれでも無料で世界に向けて発信できるものなので、ぜひ、多くの人に使ってもらいたいものです。開発ツール系やフレームワーク系のビジネスやっている皆さんなんか特にぜひ。提供者が何もしなくても、それぞれの開発者が使っている Visual Studio の NuGet パッケージ管理 GUI で、

Knowledge & Experience が公開しているパッケージ群

こんな感じですぐに使うことができるようになっています。
ここから、開発サイトやサポートへの誘導ができるので、超便利!

ここから先は

5,581字 / 16画像

2022年3月にマイクロソフトの中の人から外の人になった Embedded D. George が、現時点で持っている知識に加えて、頻繁に…

この記事が気に入ったらサポートをしてみませんか?