■2009年11月08日(日)18:58
Inno Setup の覚書。
|
Inno Setup にて、OS 判定を行いたい場合の覚書です。
スペシャルサンクス:しらがさん、ちゃちゃん、あんとにおさん
今回は64ビットと32ビットに関してのみ記載。 使用するDLLを32ビットと64ビットで分けたかったので、以下の様にフォルダの指定とCheck: にてIs64BitInstallModeを判定。
Source: .\x64\System.Data.SQLite.DLL; DestDir: {app}; DestName: "System.Data.SQLite.DLL"; Check: Is64BitInstallMode; Flags: ignoreversion Source: .\x86\System.Data.SQLite.DLL; DestDir: {app}; DestName: "System.Data.SQLite.DLL"; Check: not Is64BitInstallMode; Flags: ignoreversion
ただし、[Source]セクションに
ArchitecturesInstallIn64BitMode=x64
の記載が必要。
また、64ビットだけでなく、Itanium も切り分けたい場合は[Code]セクションにて
function IsX64: Boolean; begin Result := Is64BitInstallMode and (ProcessorArchitecture = paX64); end;
function IsIA64: Boolean; begin Result := Is64BitInstallMode and (ProcessorArchitecture = paIA64); end;
function IsOtherArch: Boolean; begin Result := not IsX64 and not IsIA64; end;
と記載し、各ファンクション名をIs64BitInstallModeの代わりに使用する。
Source: .\x64\System.Data.SQLite.DLL; DestDir: {app}; DestName: "System.Data.SQLite.DLL"; Check: IsX64; Flags: ignoreversion Source: .\Ita\System.Data.SQLite.DLL; DestDir: {app}; DestName: "System.Data.SQLite.DLL"; Check: IsIA64; Flags: ignoreversion Source: .\x86\System.Data.SQLite.DLL; DestDir: {app}; DestName: "System.Data.SQLite.DLL"; Check: IsOtherArch; Flags: ignoreversion
参考URL
http://cvs.jrsoftware.org/view/issrc/Examples/64BitTwoArch.iss?revision=1.5&view=markup http://cvs.jrsoftware.org/view/issrc/Examples/64BitThreeArch.iss?revision=1.5&view=markup
たぶん、本気でOSバージョンで判定したい場合は
http://nardog.takoweb.com/misc/mystral_kk/isfaq.html#difffiles
こちらに記述のある、MinVersion を使用すればよいと思われます。
http://dobon.net/vb/installer/installer2-11.html
こちらもご参考に。 ただ、MinVersion にどんな値を設定すれば想定どおりに動くかまでは検証してません(^^;;;
追記: Inno Setup のヘルプより抜粋。
Windows versions:
4.0.950 Windows 95 4.0.1111 Windows 95 OSR 2 & OSR 2.1 4.0.1212 Windows 95 OSR 2.5 4.1.1998 Windows 98 4.1.2222 Windows 98 Second Edition 4.9.3000 Windows Me
Windows NT versions:
4.0.1381 Windows NT 4.0 5.0.2195 Windows 2000 5.01.2600 Windows XP or Windows XP 64-Bit Edition Version 2002 (Itanium) 5.02.3790 Windows Server 2003 or Windows XP x64 Edition (AMD64/EM64T) or Windows XP 64-Bit Edition Version 2003 (Itanium) 6.0.6000 Windows Vista 6.0.6001 Windows Vista with Service Pack 1 or Windows Server 2008
ということらしいです。
2個目のサンプルより、「MinVersion: 4.1,5」という記述があるので、前方一致にて処理してるのかもしれません。 当然ながら、Vistaまでであり、Win7 については不明でございます(笑) | | |