Qikuzou
@Qikuzou

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Inno Setupで文字列を含むバージョンを取得したい

Q&A

Closed

解決したいこと

Visual Studioではexeファイルに文字列を含むバージョンを設定することができます。
https://learn.microsoft.com/ja-jp/nuget/concepts/package-versioning?tabs=semver20sort#pre-release-versions

Inno Setupでこのバージョンを取得したいのですがうまく出来ません。

発生している問題・エラー

例えばVisual Studioで以下のようなバージョンを設定すると

1.2.3-beta4

Inno Setupでは以下のようなバージョンを取得してしまいます。

1.2.3.0

自分で試したこと

Inno Setupでは以下の2種類のコードを試してみました。

#define VersionMajor
#define VersionMinor
#define VersionPatch
#define VersionSuffix
#define FullVersionString GetVersionComponents('Filename.exe', VersionMajor, VersionMinor, VersionPatch, VersionSuffix)
#define MyAppVersion Str(VersionMajor) + "." + Str(VersionMinor) + "." + Str(VersionPatch) + "." + Str(VersionSuffix)
#define MyAppVersion GetVersionNumbersString('Filename.exe')

追記

Visual Studioで
 パッケージバージョンに1.2.3-beta4
 ファイルバージョンに6.7.8.9
を設定するとInnoSetupでは6.7.8.9を取得しました。

0

1Answer

Visual Studioのバージョン番号管理がマイクロソフト独自形式なのでInno Setupが対応していないのでは?
Inno Setupの仕様を見ると 16bit整数4つってなってます

マイクロソフト以外の開発環境だとEXEやDLLには16bit整数4つ入れられるだけです

ファイルバージョンから取得すると便利かも知れませんが
[Setup]セクションのAppVerNameやAppVersionに手動で入力するのは面倒でしょうか?

1Like

Comments

  1. @Qikuzou

    Questioner

    Inno Setupで自動取得は無理そうですね。
    手動入力は面倒というより、Visual Studioでは変更したのにInno Setupでは変更し忘れたというポカミスを防ぐためにあまりやりたくなかったですが、手動でやるしかなさそうです。
    回答ありがとうございました。

Your answer might help someone💌