Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2017 用于构建Surface Pro X的WiX工具集中的ARM64支持?_Visual Studio 2017_Arm_Wix_Windows Installer_Wix4 - Fatal编程技术网

Visual studio 2017 用于构建Surface Pro X的WiX工具集中的ARM64支持?

Visual studio 2017 用于构建Surface Pro X的WiX工具集中的ARM64支持?,visual-studio-2017,arm,wix,windows-installer,wix4,Visual Studio 2017,Arm,Wix,Windows Installer,Wix4,随着微软发布Surface Pro X,我希望为ARM系统创建一个MSI安装程序。我一直在四处寻找,似乎WiX工具集v3不支持ARM设置项目。然而,看起来WiX v4确实有支持 我使用官方WiX站点上的安装程序安装了WiX工具集v4。然而,尽管我已经安装了,Visual Studio 2017仍然没有给我选择WiX工具集v4安装项目的选项。我只有v3的选项: 我确实通过Visual Studio安装程序验证是否安装了WiX v4架构: 我知道,v4选项可以通过other的Visual Stu

随着微软发布Surface Pro X,我希望为ARM系统创建一个MSI安装程序。我一直在四处寻找,似乎WiX工具集v3不支持ARM设置项目。然而,看起来WiX v4确实有支持

我使用官方WiX站点上的安装程序安装了WiX工具集v4。然而,尽管我已经安装了,Visual Studio 2017仍然没有给我选择WiX工具集v4安装项目的选项。我只有v3的选项:

我确实通过Visual Studio安装程序验证是否安装了WiX v4架构:

我知道,
v4
选项可以通过other的Visual Studio设置获得。例如,Nick Nolan对on StackOverflow的回答链接到一个屏幕截图,您可以看到他在“新建项目”对话框浏览器下列出了
v3
v4
选项

如何将WiX工具集v4支持添加到Visual Studio 2017?换句话说,如何在“新建项目”资源管理器窗口的“WiX工具集”下添加
v4
选项,如图所示?

,似乎WiX v4实际上已从Visual Studio扩展中删除:

老实说,WIX4.0还需要几年的时间。我现在一点也不担心。事实上,WixV4模板最近从Voctive(VisualStudioExtension)中删除了,因此应该可以让您了解它有多远

经过进一步调查,VisualStudio扩展的提交历史记录证实了这一点。删除v4选项

我将查看是否可以重新启用它,以查看是否可以为ARM系统创建设置
*.MSI


编辑1-2/24/2020 如果安装了以前版本的WiX扩展,则可以再次访问
v4
选项,而无需重新编译整个扩展。启用了
v4
选项的最新版本为。但是,在安装之前,请确保卸载可能已安装的任何现有扩展

一旦安装了这个旧的扩展,就必须安装v4构建工具。剩下要做的唯一一件事就是打开VisualStudio并创建一个新的WIXV4项目

现在,我正在玩WiX v4,即使
标记中的
平台
字段允许值
arm
,它也不会成功编译。我一直得到以下错误:

ICE39:摘要信息流中的PID_模板值无效。其形式必须为“平台,平台,…;LangID,LangID,…”

(我确保按说明将InstallerVersion设置为500。)

我认为这是因为WIXV4还没有完全实现ARM支持,我认为这种情况可能会持续一段时间。同时,只需将安装程序编译为
x86
,因为Windows for ARM内置了x86仿真

编辑2-2020年5月27日 ARM支持最终添加到WiX v3工具集 对ARM(32位)和ARM64(64位)的支持似乎刚刚添加到WiX v3中,如和所述。如本期所述,您必须安装。如果有任何打开的Visual Studio项目,请确保它们都已关闭。此外,一旦安装了WiX v3.14,请确保单击“更新可用”按钮以获得任何更新

现在,构建配置仍然不允许您选择
arm
arm64
。您必须手动将平台配置添加到
*.wixproj
文件中。出于某种原因,如果您为
ARM
(即32位ARM)构建安装程序,Surface Pro X上的“Windows For ARM”将向您的安装程序抛出错误,而不会为
arm64
构建安装程序。因此,下面是我添加到
*.wixproj
文件中的
arm64
构建配置:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|arm64' ">
    <DefineConstants>Debug</DefineConstants>
    <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
    <IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|arm64' ">
    <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
    <IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
(其中
!(loc.ProductNameFolder)
是在我的WiX本地化文件中定义的区域设置常量,并定义我的程序的安装文件夹的名称。)

在Surface Pro X上,新的
ARM64
程序文件文件夹名为“程序文件(Arm)”

最后,在
定义中,确保将
installervision
设置为
500
<代码>平台可以保留为
$(var.Platform)
,也可以手动键入
arm64
。对于两个
平台
输入,intellisense将在其下方加下划线,但这可以忽略

完成所有这些之后,您现在应该能够为Surface Pro X机器创建ARM64 MSI安装程序了

<Directory Id="ProgramFilesArm64Folder" Name="Program Files (Arm)">
    <Directory Id="INSTALLFOLDER" Name="!(loc.ProductNameFolder)" />
</Directory>