Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

改善点

  • v01-72から、NuGet利用を開始した。
    これによりビルド・システムは大幅に改善した。
  • v02-10から、NuGet登録を行い、
    • 更なるビルド・システムの改善と、
    • リポジトリ内のソース・ファイルの重複の軽減を図る。

参考

NuGet?利用

NuGet?利用を開始したことにより、ビルド・システムは大幅に改善した。

バージョン

v01-72から、

  • log4net や DotNetZip? などのライブラリ管理を NuGet? に変更。
  • これにより、今まで別途ダウンロードする必要のあったDLLをNuGet?から取得可能になった。

v02-00から、

v02-10から、

カスタマイズ可能レイヤ以外のライブラリをNuGet登録を行い、

  • 更なるビルド・システムの改善と、
  • リポジトリ内のソース・ファイルの重複の軽減を図る。

v02-20から、

以下の対応が行われた。

  • デバッグ用のシンボル・パッケージ格納
  • パッケージの作成・登録の自動化

v02-30から、

Primary packageにもソースを同梱(シンボル サーバ不具合時対応として)。

バージョンアップ

バージョンアップ(バージョン変更)は

  • GUI操作
  • CUI操作(Update-Packageなど)

により行うことができる。

参考

NuGet?登録

対象

Public名前空間

  • OpenTouryo?.Public.dll
  • その他、各種Dam*.dll
    • NuGet?にdllが適切に登録されているものに限る
      • OpenTouryo?.DamManagedOdp?
      • OpenTouryo?.DamMySQL
      • OpenTouryo?.DamPstGrS
  • これにより、テンプレート版も既定で以下のDBをサポートできるようになる。
    • SQL Server
    • ODBC, OLEDB
    • Oracle
    • MySQL
    • PostgreSQL

Framework名前空間

  • OpenTouryo?.Framework.dll
  • OpenTouryo?.Framework.RichClient?.dll

構成の変更

本体(母体)

Public名前空間、Framework名前空間にのみ適用される。

  • 実装 ---> テストの容易性を維持するために本体(母体)側の基本的なビルド・システムは現行を維持する。
  • しかし、NuGet?パッケージに登録するためのTarget Framework毎のビルドが可能になるようにする。
    • Target Frameworkとして、以下をサポートする。
      • net35 ( .NET Standard がサポートしている .NET Framework は 4.5 以上)
      • net452 (targetFrameworkをバージョン・ダウンして、利用可能。)
      • net46 (VS2015テンプレートが既定で使用する。)
      • net47 (VS2015テンプレートが既定で使用する。)
  • プロジェクト・ファイル(*.csproj)をTarget Framework毎に準備する。
    • プロジェクト・ファイル(*.csproj)の名称付与基準は、「*{framework name}[{version}].csproj」とする。
    • プロジェクト・ファイル(*.csproj)では、以下のようなビルド出力を行う(src側のフォルダ構成を参考にする)。
      以下は、*.nuspecファイルの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化する。

テンプレート

Public名前空間、Framework名前空間が、Nuget化される。

  • 以下のカスタマイズ可能レイヤ、テンプレート部分は、
    root_VS20XXのテンプレートに重複して保持する。
  • カスタマイズ可能レイヤ
    • Business名前空間
    • 各種カスタムコントロール
    • 各種サービスインターフェイス
    • , etc.
  • テンプレート部分
    • Web系
    • C/S系
    • バッチ系
    • , etc.

.NET Standard対応

  • Public名前空間から、.NET Standardに対応可能なクラスライブラリを抽出、
    Standard名前空間のStandard.dllとして、NuGet?パッケージに登録する。
  • このライブラリは、Linuxや、Win10 IoT Core上で動作する
    プログラム開発でユーティリティとして利用されることを想定する。

参考

NuGetパッケージの作成手順

NuGet導入後のデバッグ方法

NuGetからローカルに切り替える。

nuspecファイル

テンプレート

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/NuGet/template.nuspec

★ は必須入力

共通部品とフレームワーク


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-08-28 (火) 14:22:03 (50d)