3

Visual Studio 2008 を使用して Windows インストーラーを作成し、x86 と x64 の両方のオペレーティング システムを対象とする方法はありますか。

TargetPlatform プロパティにはx86、 , x64, Itanium. そして、どこかに別の名前が付けられていることは知ってAny CPUいますが、見つかりません。

また、セットアップを 2 つ作成したくありません。

何か案は ?

ありがとう。

4

3 に答える 3

4

これは可能ですが、VisualStudioで直接行うことはできません。一般的なアプローチは次のとおりです。

Orcaを使用して変換を作成できます。商用ソリューションが必要な場合は、AdvancedInstallerまたはInstallShieldを試すことができます。

これが複雑すぎると思われる場合は、32ビットパッケージと64ビットパッケージを別々に使用できます。

于 2011-07-21T10:57:31.833 に答える
3

実行できますが、VSインストーラーでは実行できません。InstallShield製品でこれを達成した同僚がいますが、これは絶対的なハックであり、最終的には、ターゲットのビット数ごとに1つずつ、2つの異なるインストーラーを作成するというはるかに優れた結果になりました。

私もあなたを啓発する必要があります:

TargetPlatformプロパティには、x86、x64、Itaniumがあります。そして私はどこかにAnyCPUと呼ばれる別のものがあることを知っています

このTargetPlatformプロパティは、インストールするアプリケーションのビット数を変更しません。アセンブリ自体のターゲットプラットフォームと混同されます。MSIは配信手段であり、その中の.Netアセンブリはペイロードです。TargetPlatformMSIの設定は、.NetアセンブリのJITコンパイル方法を制御しません。代わりに、インストールパスの決定に使用されます(x86に設定されている場合、デフォルトのインストールパスはである必要が%PROGRAMFILES(x86)%あり、さまざまなレジストリハイブが対象になります。

于 2011-07-21T09:51:22.977 に答える
1

私は間違っているかもしれませんが、これはできないと確信しています。あなたが言及した Any-CPU は、アセンブリの .Net コンパイラによって使用されます (.Net アセンブリは、デフォルトではアーキテクチャに依存しませんが、x86 または x64 として強制的にコンパイルすることができます)。ただし、windows-Installer はネイティブの win32 exe であるため、「Any-CPU」として生成することはできません。そのため、x86 用と x64 用の 2 つの同一のインストーラーを生成する必要があります。

于 2011-07-21T09:44:36.857 に答える