Closed dtvgit closed 3 years ago
今のところリリースのタグを作った日付をバージョン代わりにしていますが、 バイナリ自体に情報を含めたほうが確かに分かりやすいと思うので、追加する方向でいきます。
表示先は、基本的にはバイナリのファイルプロパティ(現在0.10.70.0
になっている所)を想定していますが、
「EpgTimerSrv設定」や「EpgDataCap_Bon設定」のダイアログの隅あたりにも表示できれば便利かなと思っています。
手段としては、Common
フォルダの中にEdcbVersion.h
みたいなファイルを作って、そこにリリースの日付などを追記(gitのある環境ならオプションでコミットハッシュを追記)する形で行きたいと思っています。TVTestがとっている手段と似たようなもの?です。
たぶん、多くの人はgitを使わずzipでソースをダウンロードして自ビルドしている気がするので、コミットハッシュの追記はオプションとしたいです。
(gitのあるなしで別のバイナリができると気になる人が出ると思うので)
追記するリリース情報の詳細はまだ詰めていません(フォークする人が毎回書き換える必要がないように自由追記の枠を設けるとか)が、なにか希望などあればよろしくお願いします。
プラグインで確認できる形式にしてはどうかと・・
xtne6fさんが実装しやすい方法で、バージョン情報を見ればどのバイナリなのかが確実に特定出来ればよいと思います
とりあえず commits/7f278db のような実装にしてみました。(不足あれば変更します)
リリースの日付などを設定画面の右下と、ファイルプロパティの製品バージョンに表示します ↓↓
ソースのVERSION_TAG
定数を書き換えることで変更可能です。$ ./versionhash.sh edittag
で自動化できます。
製品バージョンの4桁数字「0.10.70.0」は固定です。OSの仕様上この部分には制約があるので…
Write_Defaultの設定画面なんかにも表示しようかとちょっと思いましたが、画面がうるさくなるので止めました。
オプションでコミットハッシュも追記できます ↓↓
こちらはVERSION_EXTRA
定数を書き換えます。$ ./versionhash.sh gen
で自動化できます。
VERSION_TAG
は各フォークがリリース時に書き換え、VERSION_EXTRA
はビルド時やローカルな変更時の書き換えを想定してますが、規則ではないので自由に弄ってください。自分はVERSION_TAG
をリリース時(work-plus-s-{日付}タグを作るとき)に書き換えるつもりです。
プラグインでの確認、の意味に沿うかどうかわかりませんが、ファイルプロパティの情報はAPI的に取得できます ↓
std::vector<BYTE> buff(GetFileVersionInfoSize(L"確認したいアプリのパス", nullptr));
LPWSTR p;
UINT len;
if (buff.empty() == false &&
GetFileVersionInfo(L"確認したいアプリのパス", 0, (DWORD)buff.size(), buff.data()) &&
VerQueryValue(buff.data(), L"\\StringFileInfo\\041104b0\\ProductVersion", (void**)&p, &len))
{
std::wstring versionText(p, len);
}
これはC++の例ですが、C#でも(悪くてもP/Invokeで)取得できるはずです。
上記で決定とします。
バージョン情報を見る手段がありません バージョン情報やコミットIDを表示して頂けると、問題解決の糸口に有効だと思います