C# Wix工具集赢得';当应用程序为64位时,不要在64位程序文件文件夹中安装WPF应用程序
环境:C# Wix工具集赢得';当应用程序为64位时,不要在64位程序文件文件夹中安装WPF应用程序,c#,wix,C#,Wix,环境: Visual Studio 2019 Wix工具集-最新版本 WPF.Net Framework 4.8 开发操作系统-Windows 10 Pro 64位 我已将project平台设置为x64,并将Wix中的文件夹设置为ProgramFiles64文件夹,但它一直安装到程序文件(x86)。我错过了什么 <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://
Visual Studio 2019
Wix工具集-最新版本
WPF.Net Framework 4.8
开发操作系统-Windows 10 Pro 64位 我已将project平台设置为x64,并将Wix中的文件夹设置为
ProgramFiles64文件夹
,但它一直安装到程序文件(x86)
。我错过了什么
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"><?define WpfApp1_TargetDir=$(var.WpfApp1.TargetDir)?>
<Product Id="*" Name="SetupProject1" Language="1033" Version="1.0.0.0" Manufacturer="RCS" UpgradeCode="68c32f22-6310-415f-abb5-2027e3825dfc">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes" CompressionLevel="high" />
<Feature Id="ProductFeature" Title="SetupProject1" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFiles64Folder">
<Directory Id="INSTALLFOLDER" Name="SetupProject1" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="WpfApp1.exe" Guid="7cb2f935-47b4-4df8-9112-742b3f6c8569">
<File Id="WpfApp1.exe" Name="WpfApp1.exe" Source="$(var.WpfApp1_TargetDir)WpfApp1.exe" />
</Component>
<Component Id="WpfApp1.exe.config" Guid="66fdfbdd-5089-4fc9-9742-30a0d914b738">
<File Id="WpfApp1.exe.config" Name="WpfApp1.exe.config" Source="$(var.WpfApp1_TargetDir)WpfApp1.exe.config" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
Candle.exe(-arch):WiX显然可以为您处理此问题,而无需为每个组件硬编码平台属性:
将-arch开关传递到1)
命令行或candle.exe
在2)
.wixproj MSBuild项目中设置
属性
x64
指定为-arch
和candle.exe将自动将组件设置为64位(无需硬编码)
对于64位软件包中的任何32位组件,请设置Win64='no'
(如果编译32位版本的安装程序,也可以使用)
可能尝试将Win64=“yes”属性添加到您的组件中(前提是它们是64位组件),并将x64添加为平台(在WiX下方使用简化标记,-向下滚动到标记图示):
执行此操作后,请确保测试任何32位C#自定义操作。我似乎记得一些捕熊器。我现在只记得——我害怕。请测试一下
链接:
- (否,未弃用)
这很有效,但我有很多文件,我是否需要手动将其添加到每个组件中?我想我可以搜索和替换,但是……你们有多少组件并不是说我在这方面有很多经验()。(不是我的)。大约600个部件完全不需要:
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Platform="x64" />
<..>
<Component Feature="ProductFeature" Win64="yes">
<File Source="C:\Windows\Notepad.exe" />
</Component>