1

VS2015を使用して自分のサービスのインストールソリューションを構築しています。 プログラムを64ビットとして実行します。 ソリューション構成プロパティでは、すべてのプロジェクトが構成デバッグ、プラットフォーム、任意のCPU、展開の空白になっています。Program Filesを選択すると、サービスインストールプロジェクトがProgram Files(x86)にインストールされるのはなぜですか?

MSIインストーラはでインストールするフォルダを選択するために私に尋ね、私はインストーラがフォルダプログラムファイルを作成し、Windowsの8.1 64ビットOS上でインストールしようとすると、私はしかし、プログラムファイル\マイ会社名

を選択します(x86)\私の会社名

なぜですか?

答えて

3

あなたが生成したMSIは、32 bit folder pathsにしかアクセスできない32ビットのMSIである可能性が高いためです。したがって、OSはリダイレクトを自動的に実行します。

Windows SDKにある無料のツールOrcaを使用して、MSIパッケージの種類を確認できます。 MSIのパッケージタイプ情報は、[概要情報]メニューにあります。または、インストールの冗長ログを生成することもできます。ほとんどの場合、パスリダイレクトについての情報が含まれています。詳細なログを生成するための

コマンドライン:ログ・ファイル名を含む

ます。msiexec.exe/I <フルMSIのパス> /のL​​ * V <完全なログファイルのパス、>

事実でありますMSIの「任意のCPU」は、32ビットと64ビットの両方のマシンで実行できる32ビットのMSIを取得することを意味します。 64ビットMSIは32ビットマシンにはインストールできません。

Windowsインストーラは、の混在MSIパッケージをサポートしていません。また、アーキテクチャごとに1つずつ、2つのMSIをバンドルし、実行中のOSに基づいて正しいものを起動するEXEブートストラップを構築する他のセットアップオーサリングツールもあります。

Advanced Installer can build mixed packagesもこのSO similar/related threadに記載されている。任意のdevツールと同様に、他にもオプションがあります。上にリンクされているSOスレッドを参照してください。

0

異なるパッケージは、各アーキテクチャのために必要とされる:Visual Studioのセットアップで

https://blogs.msdn.microsoft.com/heaths/2008/01/15/different-packages-are-required-for-different-processor-architectures/

は、アーキテクチャは、[プロパティ]ウィンドウにある突き出(NOT「プロパティ」、ソリューションエクスプローラとF4でセットアッププロジェクトを選択)でTargetPlatformの選択肢。セットアッププロジェクトは、コードビルドでどのようなアーキテクチャーを選択したかには従いません。

ProgramFiles64Folderは、ProgramFilesプロパティ(Heathの記事にあるように)を使用して、ネイティブProgram Filesフォルダにインストールします。

関連する問題