2012-03-15 8 views
4

私の上司は、クライアントのマシンの1つにソフトウェアをインストールするためのインストーラが必要です。彼は、 "C:¥Program Files(His)"ではなく "C:¥Program Files¥HisApplicationName"にソフトウェアをインストールすることを望んでいます。私は正しい答えは、ユーザーがインストールするために選択する任意のディレクトリを収容するためにソフトウェアを書き換えることであることを知っているが、残念ながら、これは非常に古いソフトウェアです&明日インストールする必要があるので、 "プログラムファイル"ディレクトリ。Windowsセットアップ/インストーラプロジェクト:x86ではなく、 "Program Files"にインストールを強制しますか?

ファイルパスをインストーラの "DefaultLocation"プロパティにハードコードすると、インストーラはまだプログラムファイル(x86)ディレクトリをポイントしようとします。

Windowsセットアップ/インストーラーパッケージがProgram Files &(Program Files(x86)ではなく)を指し示すように強制する方法はありますか?

ありがとうございました。

+2

32ビットアプリケーションであるため、「Program Files(x86)」になります。マシン自体の所有者がポリシーを変更しない限り、それは所属しています。これに対して作業しようとするのは、ブラウザのメインウィンドウのサイズやデフォルトのフォントと色をサイトに合わせて変更する方法についての説明がある90ページのホームページのようなものです。 –

+0

返信ありがとうMarcelo。残念ながら、これはオプションではありません。正直言って、それは特に "Program Files"ディレクトリのファイルを探すひどいソフトウェアです。他のディレクトリを見るとエラーが発生します。私はこれを書き換える時間があれば、残念ながら、このクライアントは明日までにこれを必要とします。 – goalie35

+0

特定のクライアントのための1回限りのものであれば、おそらく(Vista/Win7と仮定して)リンクを作成すると問題が解決されます。 –

答えて

13

サポートされていない1つの破壊的なハッキングを除いて、Windowsインストーラでは簡単には実行できません。

INSTALLDIR参照

C:\Progra~1\.....に、MSIは自動的に「修正」C:\Program Files (X86)C:\Program Files\の任意のハードコードされた参照はMSIが32ビットとしてマークされている後方互換性のための機能を持って設定してください。私のハックが機能するように、ショートネームのバージョンを計算してリダイレクトするのに失敗します。彼らは短いファイルシステムを無効にしていないと仮定します。

C:\Program Filesにインストールする適切な方法は、MSIを64ビットとしてマークし、ProgramFilesFolderプロパティの代わりにProgramFiles64Folderプロパティを使用することです。

あなたの上司があなたを信じないなら、私は新しい上司を見つけることをお勧めします。私は16年間インストーラを書いてきましたが、決してPHBのような決断を下さないでください。私はWindowsインストーラの専門家であり、彼ではありません。

+0

ありがとうございます。これはうまくいった!私はこれがハックであることを理解しています。私は典型的なインストールでこのアプローチをとることはありませんが、この古い、clunkyなソフトウェアをインストールする目的で...それはトリックでした! – goalie35

+0

偉大な答え! (特に最後のビット!) – tommed

+0

魅力のように動作します、私はこれを早く見つけられませんでした!ありがとう – user616

関連する問題