私のソリューションは、プラットフォーム設定「任意のCPU」で構築されています。 WiX 3.6インストーラープロジェクトの設定では、ターゲットプラットフォームを「x64」に設定できないようです。 「x86」のみが使用可能です。 WiXプロジェクトはx64をターゲットにして構築できますか?
WindowsインストーラーはAnyCPUをターゲットにするようにビルドできません。通常、マネージコードをAny CPUに設定して、2回ビルドしますが、インストーラーにはx86とx64の2つの構成があります。
構成を作成する必要がある場合があります。これは、ソリューションを右クリックして構成マネージャーを選択し、プラットフォームの下のドロップダウンを選択することで実行できます。完了すると、wixprojで次のように定義されていることがわかります。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DefineConstants>Debug</DefineConstants>
<OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
インストーラーがx86とx64の両方で動作できるようにするには、変数を定義して、インストールのアーキテクチャーを検出および設定します。
<?if $(var.Platform) = x64 ?>
<?define bitness = "(64 bit)" ?>
<?define Win64 = "yes" ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?else ?>
<?define bitness = "(32 bit)" ?>
<?define Win64 = "no" ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?endif ?>
視覚的な手がかりとして、名前にbitness
変数を追加します。
<Product Name="My Install $(var.bitness)"
必要に応じて Program Files フォルダを参照してください。
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.PlatformProgramFilesFolder)">
コンポーネントには、Win64フラグが適切に設定されています。
<Component Win64="$(var.Win64)"