ClickOnce アプリケーションの発行で自動的に増加するビルド/バージョン番号があります。このバージョン番号は、プロジェクト プロパティのアセンブリ バージョンとは異なります (これは、生成された WPF の [About] ボックスに自動的に表示されます)。
アセンブリ プロパティで ClickOnce のバージョン番号とプロジェクト番号を同期する方法はありますか? 目標は、両方の場所で自動的に増加する同一のバージョン番号を取得することです。
ClickOnce アプリケーションの発行で自動的に増加するビルド/バージョン番号があります。このバージョン番号は、プロジェクト プロパティのアセンブリ バージョンとは異なります (これは、生成された WPF の [About] ボックスに自動的に表示されます)。
アセンブリ プロパティで ClickOnce のバージョン番号とプロジェクト番号を同期する方法はありますか? 目標は、両方の場所で自動的に増加する同一のバージョン番号を取得することです。
これを行う自動 (組み込み) 方法はありません。私のプロジェクトで使用している考えられる回避策は、カスタム msbuild タスクを使用してパブリッシュとアセンブリのバージョン情報を生成することです。
nuget パッケージとして利用できるいくつかのプロジェクトは、これらの問題を解決することを目的としていますが、それほど完全なものはありません。SemVerHarvesterとCroMagVersionを見てみましょう...
上記の両方には多くの問題があります。
上記のすべての回避策があり、すぐに github でオープンソースにする予定です...それまでの間、私が行ったことを説明します。
git からバージョン情報を読み取り、この情報に基づいてメモリ内 AssemblyInfo ファイルを作成するカスタム msbuild タスクを作成しました。既存の AssemblyInfo.cs ファイル (つまり、AssemblyVersion およびその他の属性を持つファイル) を確認し、メモリ内のバージョンの方が新しい場合にのみ上書きします。これにより、インクリメンタル リビルドが可能になります。最後に、ApplicationVersion、ApplicationRevision、および ClickOnce をサポートするその他のプロパティも出力します。
回避策をスタンドアロン ソリューションとしてオープンソース化する場合は、テキスト ファイル、git、hg などからバージョン情報を取得できるようにします。
私がまだ良い解決策を見つけていない問題:
ClickOnce は、複数のリリース チャネル (debug/beta/ custom_feature /whatever など) を直接サポートしていません。