ビルド前にobjフォルダに生成するようになります。この中で重要なのが、ASSEMBLYNAME.Version.csです。いう静的クラスが書かれていることがわかります。Nerdbank.GitVersioningよりもシンプルにやりたいことをやってくれます。〇Gitの情報を拾ってきて埋めるだけなので、シンプルにできているのが最大のメリットです。導入するだけでできます。Nerdbank.GitInfoサンプルプロジェクトで見てみましょう。ThisAssembly経由でGitバージョン情報にアクセスできます。gist.github.com出力結果です。Patchバージョンにこれを埋め込みます。ファイルバージョンは何もしません。ビルド時に自動生成されるようになりました。この自動生成自体を止めたり、特定の属性の出力を止めることはできることは前回の記事でみました。使ってアセンブリバージョンを埋め込んでみましょう。3つのバージョンがありますが、それぞれにバージョンを指定します。自動生成しないようにすることでビルドが通るようになります。プロジェクトの同一階層においてバージョンを指定します。0.0.1実行してみると意図したとおりにバージョンが書き込まれていることがわかります。読み込まれたことがわかります。パッケージのバージョンを指定するのに最も簡素な方法の一つです。SCMだとちょっと埋め込み時に工夫がいるので素朴すぎ感があります。実際に使っているリポジトリを見てみましょう。ビルドするときに値を差し込むことができます。gist.github.comあとは、ビルド時にプロパティを指定しましょう。情報を任意のプロパティに埋めることができます。任意のファイルをコンフィグとして読み込み、DIで指せることが利用できます。scm情報をCIでjsonに吐き出しビルド時にjsonを一緒に配置アプリ実行時にDIDI経由で呼び出しscm情報をCIでjsonに吐き出しプロジェクトに次のSet-GitAppVersion.ps1スクリプトをContentRoot直下に突っ込みます。スクリプトを実行してSCMの情報をもったjsonを作るコマンドを並べただけです。作ればなんでもokです。プロジェクト直下に配置されます。いじって、version.jsonあったときは、ビルド時にコピーするようにします。なくていいので、.gitignoreにしておくといいでしょう。version.jsonアプリ実行時にクラスにバインドする型セーフに扱うため、マッピングするAppVersionクラスと、バインドを任せるAppVersionServiceを作ります。各箇所で呼び出すことができます。埋め込む場合は、@InjectでDIからとってくることができます。ブロックを吐き出してもいいでしょう。}手間がかかるので幾分素朴すぎ感があります。別にこんなことをしたくないという。(9)トップへ戻るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。