「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-戻る
--[[NuGetパッケージの作成手順]]
--[[Open棟梁のバージョンアップ]]
--[[targetFrameworkのバージョンアップ]]
--[[リリース・エンジニアリング]]

*目次 [#b45bbe53]
#contents

*概要 [#h7a5f2fa]
-Open棟梁のバージョン番号付与ポリシーについてまとめた。
-基本的には、6ヶ月単位の定期リリースの際にバージョンアップさせる。

*詳細 [#r3ebd8db]

**AssemblyVersion [#j3244083]
-major.minor.build.revisionの形式で、AssemblyInfoやProjectファイルに付与する。
-AssemblyFileVersion、AssemblyInformationalVersionはこの値を使用する。
[[major>#lef21dad]].[[minor>#na7102d9]].[[build>#q2de5f8f]].[[revision>#i1c2fe3a]]の形式で、
-AssemblyInfo(.NET Framework)
-Projectファイル(.NET Standard、.NET Core)

にバージョン番号を付与する。

※ AssemblyFileVersion、AssemblyInformationalVersionはこの値を使用する。

***major [#lef21dad]
後方互換は維持しているので、

-コンセプト変更や、
-5年以上のminor更新の継続

などで、インクリメント。

***minor [#na7102d9]
半年単位のリリースでインクリメントしていく。
「半年単位のリリース」でインクリメントしていく。

***build [#q2de5f8f]
NuGetリリースの度にインクリメントしていく。
「NuGetリリース」の度にインクリメントしていく。~
(主に、リリース作業のミスなどでインクリメントされる)

***revision [#i1c2fe3a]
使用しないので、常に0。
現時点で使用しないので、常に0。

**PackageVersion [#jabe1ce2]
-major.minor.buildの形式で*.nspecファイルに付与する。
-revisionは使用しないので、AssemblyVersionの頭3つと同じになる。
[[major>#lef21dad]].[[minor>#na7102d9]].[[build>#q2de5f8f]]の形式で*.nuspecファイルにバージョン番号を付与する。~
([[AssemblyVersion>#j3244083]]の頭3つ([[major>#lef21dad]], [[minor>#na7102d9]], [[build>#q2de5f8f]])と同じ)

***[[revision>#i1c2fe3a]] [#cf97d608]
[[revision>#i1c2fe3a]]は使用しない。

***[[プレリリース>#w282e83a]] [#nf9dbe7a]
プレリリース版のバージョン番号付与方法

*実運用 [#t9e85255]
6ヶ月単位の定期リリース以外の例外運用についてメモ。

**AssemblyVersionとPackageVersionの関係 [#tfcece78]
-AssemblyVersionのアップデートはリリースのたびに任意(.NETの仕様上)。
-PackageVersionのアップデートはリリースのたびに必須(NuGetの仕様上)。
-従って、AssemblyVersionとPackageVersionが一致しないことがある。
**[[AssemblyVersion>#j3244083]]と[[PackageVersion>#jabe1ce2]]の関係 [#tfcece78]
-[[AssemblyVersion>#j3244083]]のアップデートはリリースの度に任意(.NETの仕様上)。
-[[PackageVersion>#jabe1ce2]]のアップデートはリリースの度に必須(NuGetの仕様上)。
-従って、[[AssemblyVersion>#j3244083]]と[[PackageVersion>#jabe1ce2]]が一致しないことがある。

***2つのバージョン番号を一致させるケース [#je3ca95d]
-6ヶ月単位の定期リリース時
-修正範囲が上位パッケージを含め広範囲に渡る場合
**定期リリースと不定期・緊急リリース [#u3f13b6d]

***定期リリースでは、2つのバージョン番号を一致させる [#je3ca95d]
-ケース
--6ヶ月単位の定期リリース時
--修正範囲が上位パッケージを含め広範囲に渡る場合

-バージョンアップを適用する場合、
--対象となる、上位パッケージのNuGet参照をバージョンアップする。
--この場合、アセンブリ・バージョン・リダイレクトの設定が必要になるケースがある。

***2つのバージョン番号を一致させないケース [#bcf1af8e]
-例えば、最下位のPublicのみバージョンアップさせるケース。
-上位パッケージを修正しないでメンテナンスを済ませたい場合。
***不定期・緊急リリースでは、2つのバージョン番号を一致させないケースがある。 [#bcf1af8e]
-ケース
--例えば、最下位のPublicのみバージョンアップさせるケース。
--上位パッケージを修正しないでメンテナンスを済ませたい場合。
--[[PackageVersion>#jabe1ce2]]のみ更新し、[[AssemblyVersion>#j3244083]]は据え置く。

-バージョンアップを適用する場合、
--最上位のアプリケーションから、新バージョンのNuGet参照を追加して上書きする。
--この場合、アセンブリ・バージョン・リダイレクトの設定は不要になる。

*参考 [#re593e85]
-リフレクション性能を式木でアップした話(POCO対応) - OSSコンソーシアム~
https://www.osscons.jp/jo1e4pqn2-537/#_537

**マイクロソフト系技術情報 Wiki [#u94c723f]

***[[.NETアセンブリのバージョン情報>https://techinfoofmicrosofttech.osscons.jp/index.php?.NET%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E6%83%85%E5%A0%B1]] [#sd48e7af]

***[[NuGetパッケージのプレリリース版>https://techinfoofmicrosofttech.osscons.jp/index.php?NuGet%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E3%83%97%E3%83%AC%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E7%89%88]] [#w282e83a]

**OSSコンソーシアム [#cec7505d]
-リフレクション性能を式木でアップした話(POCO対応)~
https://www.osscons.jp/jo1e4pqn2-537/#_537


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS