ビルド環境に応じて設定スクリプトを柔軟にするために、次のdefineを使用しています。プラットフォーム属性を使用したWiX x86/x64ビルド
<?if $(var.Platform)=x64 ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?define win64Flag = "yes"?>
<?define TargetConfigurationPath = "bin\x64\Release"?>
<?else ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?define win64Flag = "no"?>
<?define TargetConfigurationPath = "bin\x86\Release"?>
<?endif ?>
詳細私はコンポーネントのすべてのWin64属性で使用するwin64Flag変数について気にします。私はパッケージも "プラットフォーム"属性でプラットフォームを使用しています。 しかし、バックのWin64属性に取得し、私は変数をこのように使用する:
Win64="$(var.win64Flag)"
そして、私はいつもYesNoType属性にこのステートメントを使用すると、無効であることを私に告げる警告が表示されます。
私はこの呼び出しでcandle.exeを使用してこのようなものを構築しています:
candle.exe -ext WixUtilExtension -dPlatform=x86 "Deployment\WiX Setup Project\SetupScript.wxs" -out "Deployment\TempBuildOutput\SetupScript x86.wixobj"
light.exe -ext WixUIExtension -ext WixUtilExtension "Deployment\TempBuildOutput\SetupScript x86.wixobj" -out "Deployment\TempBuildOutput\Installer_x86.msi"
私は、インストールが終了した場合は、アプリケーションを起動し、自動れ、私のスクリプトでいくつかのCustomActionを得ました。これはx64ビルドでうまく動作しますが、x86ビルドではうまく動作しません。 私は、Win64属性に何か問題があるかもしれないと思っています。
私の考えによれば、ファイルはx64(Program Files)とx86(Program Files(x86))の適切なフォルダにインストールされているので、このコードで何か正しいはずです。しかし、私は自分自身に頼んでいる、インストールが完了した後に私のアプリが起動しない理由は何ですか?
私はx64 Windowsで作業しています。これがx86自動起動アプリケーションの起動に失敗する原因になりますか?
私のWin64属性の使用に関する警告を解決する方法はありますか?