6

Qt Installer Framework (v2.0.1) を使用してアプリのインストーラーを作成しています。Windows で x86 と x64 の両方に対応するアプリを構築しているため、アーキテクチャごとに異なる VC++ 再頒布可能パッケージをパッケージ化したインストーラーを構築しています (MSVC++ 2013 の vcredist_x86.exe と vcredist_x64.exe)。QtIFW のドキュメントはイライラするほど詳細が不足していますが、ファイルが抽出された後に vcredist インストーラーをサイレント モードで実行する操作を installscript.qs に追加できることがわかりました。

component.addOperation("Execute", "@TargetDir@/vcredist_x64.exe", "/quiet", "/norestart");

しかし、インストーラーが x86 バージョンか x64 バージョンかを判断するのに問題があります。インストールスクリプトからこれを判断する方法はありますか? おそらく、抽出するファイルのリストを調べる方法でしょうか? または、VCRedists をインストールするという一見一般的なタスクを実行する簡単な方法はありますか?

ドキュメントには、次のように記載されています。

エンド ユーザーのシステムにランタイム ライブラリをインストールするには、適切な Visual C++ Redistributable Package (VCRedist) 実行可能ファイルをアプリケーションに含め、ユーザーがアプリケーションをインストールするときに実行されるようにする必要があります。

しかし、「確実に実行する」方法についての詳細は提供されていません。

4

2 に答える 2

3

同様の問題がありました。systeminfo.currentCpuArchitectureを使用してシステム アーキテクチャを取得できます。指定されたアーキテクチャが x64 であるかどうかを調べるために、私がしたことは次のとおりです。

if(systemInfo.currentCpuArchitecture.search("64") < 0) {
    //x86
} else {
    //x64
}

注: これにより OS アーキテクチャが返されるため、x64 CPU 上の x86 OS は x86 として表示されます。

編集: https://github.com/Skycoder42/QtIFW-Advanced-Setupをご覧ください。これは私が作成したサンプル プロジェクトで、インストール パスの修復やオフライン/オンライン インストーラーの適切な処理など、QtIFW での作業を改善するために多くの追加作業を行います。

于 2016-05-02T10:00:13.880 に答える