CTP以来、Windows 7の64ビットバージョンを使用しており、C:\Program Files (x86)
フォルダーにインストールされるアプリケーションでいくつかの問題に遭遇しました。とにかく2つの別々のプログラムファイルディレクトリを持つ目的は何ですか?
私がインストールしたプログラムはすべてC:\Program Files (x86)
フォルダーに入れられました。アプリが32ビットであるか64ビットであるかは問題ではないようです。64ビットアプリが配置されないのはなぜC:\Program Files
ですか?
C:\Program Files
代わりにデフォルトを変更する方法はありますか?私がすべてを入れるだけで何かがめちゃくちゃになるC:\Program Files
でしょうか?
64ビットアプリ用に個別のフォルダーを作成することに何らかのメリットがある場合C:\Program Files
、x86アプリで使用C:\Program Files (x64)
し、新しい64ビットアプリ用の新しいフォルダーを作成する方が賢明なデフォルトと思われます。これは、後方互換性の維持に役立ちます。私はソフトウェア開発者として働いており、私のプロジェクトのいくつかにはのライブラリへのパス参照が含まれていますC:\Program Files
。これらの参照は、それらを配置したWindows 7マシン上で壊れていますC:\Program Files (x86)
。インストーラーのターゲットの場所をに変更しようとさえしましたがC:\Program Files
、それは無視され、アプリはC:\Program Files (x86)
とにかく入りました。
これは、32ビットと64ビットのマシン間でソースコードを共有する必要があり、異なるマシンでこれらのライブラリへのパスを異なるように設定する構成ファイルを台無しにする必要がないため、非常にイライラします。
環境変数に関する編集:(簡単にするために、変数のデフォルトの英語値のみを使用します。)64ビットマシンで%ProgramFiles%
はC:\Program Files
、新しい変数%ProgramFiles(x86)%
はになりますC:\Program Files (x86)
。そのため、インストール先のフォルダーパスを見つける必要がある32ビットプログラムがある場合は、32ビットまたは64ビットバージョンのWindowsで実行されているかどうかを確認する必要があります。使用する環境変数を知るため。この考慮なしで作成された32ビットアプリは、64ビットマシンで正常に動作するために更新する必要があります。そのため、環境変数を使用しても、後方互換性は失われます。
また、%ProgramFiles(x86)%
32ビットバージョンのWindowsには存在しません。その場合、32ビットアプリは常にその環境変数を使用でき、実行しているOSに基づいた条件付きロジックを必要としません。
%ProgramFiles%
環境変数を使用するとこれを解決できたのだろうか。x86 / 64bitの違いをどのように処理するかわかりません。