「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -戻る --[[NuGet対応]] --[[リリース情報]] *目次 [#p14e365a] #contents *概要 [#sa0c2baa] **改善点 [#ved121d6] -[[v01-72>リリース情報#g5e9bdde]]から、[[NuGet利用>#mda95a7a]]を開始した。~ これによりビルド・システムは大幅に改善した。 -[[v02-00>リリース情報#j62bae77]]から、[[ASP.NET の Modernization>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20%E3%81%AE%20Modernization]]により、~ [[NuGet利用>#l902543f]]を大幅に拡大し、更なるビルド・システムの改善を図った。 -[[v02-10>リリース情報#j62bae77]]から、[[NuGet登録>#l902543f]]を行い、 --更なるビルド・システムの改善と、 --リポジトリ内のソース・ファイルの重複の軽減を図る。 **参考 [#m3b342a5] -NuGet Gallery | Packages matching Touryo~ https://www.nuget.org/packages?q=Touryo *NuGet利用 [#mda95a7a] NuGet利用を開始したことにより、ビルド・システムは大幅に改善した。 **バージョン [#v4ccc4a2] ***[[v01-72>リリース情報#g5e9bdde]]から、 [#m04b1223] -log4net や DotNetZip などのライブラリ管理を NuGet に変更。 -これにより、今まで別途ダウンロードする必要のあったDLLをNuGetから取得可能になった。 ***[[v02-00>リリース情報#i11149ce]]から、 [#y5dd5d4e] -[[ASP.NET Web Optimization>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20%E3%81%AE%20Modernization]]を行ったため、多数のコンポーネントをNuGet から追加した。 -また、[[Nuget使用時に「error MSB3086 Task could not find AL.exe」が発生>https://techinfoofmicrosofttech.osscons.jp/index.php?Nuget%E4%BD%BF%E7%94%A8%E6%99%82%E3%81%AB%E3%80%8Cerror%20MSB3086%20Task%20could%20not%20find%20AL.exe%E3%80%8D%E3%81%8C%E7%99%BA%E7%94%9F]]し、~ コレを解決するために、NuGet 2.7 以降の自動復元への移行を行った。 ***[[v02-10>リリース情報#j62bae77]]から、 [#waae1717] [[カスタマイズ可能レイヤ>ベースクラス2]]以外のライブラリを[[NuGet登録>#l902543f]]を行い、 -更なるビルド・システムの改善と、 -リポジトリ内のソース・ファイルの重複の軽減を図る。 ***[[v02-20>リリース情報#q420bd70]]から、 [#cf451583] 以下の対応が行われた。 -デバッグ用のシンボル・パッケージ格納 -パッケージの作成・登録の自動化 ***[[v02-30>リリース情報#b4c98491]]から、 [#cf451583] Primary packageにもソースを同梱(シンボル サーバ不具合時対応として)。 ***[[v02-40>リリース情報#c696766e]]から、 [#cf451583] nuspecファイルにdependency-groupsタグを導入した。 **バージョンアップ [#r140a0d9] バージョンアップ(バージョン変更)は -GUI操作 -CUI操作(Update-Packageなど) により行うことができる。 **参考 [#qc4279d6] -[[NuGet導入後のデバッグ方法>#sed1db0f]] -[[バージョンアップ(バージョン変更)方法>https://techinfoofmicrosofttech.osscons.jp/index.php?NuGet%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E7%AE%A1%E7%90%86]]を参照。 *NuGet登録 [#l902543f] **対象 [#t3904a3d] ***Public名前空間 [#zff034a6] -OpenTouryo.Public.dll -その他、各種Dam*.dll --NuGetにdllが''適切に''登録されているものに限る ---OpenTouryo.DamManagedOdp ---OpenTouryo.DamMySQL ---OpenTouryo.DamPstGrS --これにより、テンプレート版も既定で以下のDBをサポートできるようになる。 ---SQL Server ---ODBC, OLEDB ---Oracle ---MySQL ---PostgreSQL ***Framework名前空間 [#v5069030] -OpenTouryo.Framework.dll -OpenTouryo.Framework.RichClient.dll **構成の変更 [#b311f203] ***本体(母体) [#a8abbd84] Public名前空間、Framework名前空間にのみ適用される。 -実装 ---> テストの容易性を維持するために本体(母体)側の基本的なビルド・システムは現行を維持する。 -しかし、NuGetパッケージに登録するためのTarget Framework毎のビルドが可能になるようにする。 --[[Target Framework>https://docs.microsoft.com/ja-jp/nuget/schema/target-frameworks#supported-frameworks]]として、以下をサポートする。 ---%%net35%% ( .NET Standard がサポートしている .NET Framework は 4.5 以上) ---net452 (targetFrameworkをバージョン・ダウンして、利用可能。) ---net46 (VS2015テンプレートが既定で使用する。) ---net47 (VS2015テンプレートが既定で使用する。) --プロジェクト・ファイル(*.csproj)をTarget Framework毎に準備する。 ---プロジェクト・ファイル(*.csproj)の名称付与基準は、「*{framework name}[{version}].csproj」とする。 ---プロジェクト・ファイル(*.csproj)では、以下のようなビルド出力を行う(src側のフォルダ構成を参考にする)。~ 以下は、[[*.nuspecファイル>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%E9%96%8B%E7%99%BA%E3%81%A8%E5%85%AC%E9%96%8B]]のfilesセクションの定義例。 <files> <file src="bin\Release\net46\MyAssembly.dll" target="lib\net46" /> <file src="bin\Release\net461\MyAssembly.dll" target="lib\net461" /> <file src="bin\Release\uap\MyAssembly.dll" target="lib\uap" /> <file src="bin\Release\netcore\MyAssembly.dll" target="lib\netcore" /> </files> --Target Framework毎のプロジェクト・ファイル(*.csproj)を纏めるソリューション・ファイル(*.sln)を準備する。 ---ソリューション・ファイル(*.sln)の名称付与基準は、「*{framework name}[{version}].sln」とする。 --ビルドバッチ(*.bat)では全てのTarget Framework毎のソリューション・ファイル(*.sln)をビルドする。 -本体(母体)側のVisual Studioのバージョン --本体(母体)側は、最古のバージョンに固定するが、 --Public名前空間、Framework名前空間については、 ---ソリューション・ファイル(*.sln) ---プロジェクト・ファイル(*.csproj) >>を複数用意してmulti-version化する。 ***テンプレート [#f6b03dfc] Public名前空間、Framework名前空間が、Nuget化される。 -[[対象となる、Public名前空間、Framework名前空間のライブラリ>#t3904a3d]]の参照設定をNuGetに置き換える。 -以下のカスタマイズ可能レイヤ、テンプレート部分は、~ root_VS20XXのテンプレートに重複して保持する。 --カスタマイズ可能レイヤ ---Business名前空間 ---各種カスタムコントロール ---各種サービスインターフェイス --- , etc. --テンプレート部分 ---Web系 ---C/S系 ---バッチ系 --- , etc. **.NET Standard対応 [#l070e9eb] -Public名前空間から、.NET Standardに対応可能なクラスライブラリを抽出、~ Standard名前空間のStandard.dllとして、NuGetパッケージに登録する。 -このライブラリは、Linuxや、Win10 IoT Core上で動作する~ プログラム開発でユーティリティとして利用されることを想定する。 *参考 [#maff7024] **[[NuGetパッケージの作成手順]] [#b582cafd] **[[NuGet導入後のデバッグ方法]] [#sed1db0f] **[[NuGetからローカルに切り替える。]] [#m217aabe] **nuspecファイル [#se646086] ***テンプレート [#l6e77260] https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/NuGet/template.nuspec >★ は必須入力 ***共通部品とフレームワーク [#uaf034ae] -Public~ https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/NuGet/Public.nuspec -Framework~ --https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/NuGet/Framework.nuspec --https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/NuGet/Framework.RichClient.nuspec -DataAccess~ --DamManagedOdp~ https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/NuGet/DamManagedOdp.nuspec --DamPstGrS~ https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/NuGet/DamPstGrS.nuspec --DamMySQL~ https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/NuGet/DamMySQL.nuspec