创建了MSI但此处理器类型错误不支持获取安装包

时间:2013-02-20 23:13:10

标签: windows-services windows-installer setup-project

我是MSI的新手。我创建了一个Window的服务,它是我的MSI的输出项目。我的本地机器是64位Win 7机器。我尝试安装的服务器是在VM上运行的Win 2008 32位服务器。我正在使用.NET 4 VS2010。

目前,我的服务的exe正在构建为发布目标= Config Manager中的任何CPU。 MSI,没有给我任何改变平台的选择。

我可以在我的本地64位Win7机器上安装没问题。但是,每当我尝试在32位Win 2008上安装时,我都会收到以下错误: “此处理器类型错误不支持此安装包。请与您的产品供应商联系。”

我尝试将服务的目标更改为x86重建exe和设置,但我得到了相同的结果。该服务引用了许多类库。我将那些从Any Cpu更改为x86,只是为了看看是否有任何区别。

我还确保将我的安装项目和服务先决条件设置为.NET Framework 4(x86和x64)。我还尝试将先决条件Windows Installer从3.1更改为4.5。

似乎没什么用。有任何想法吗?感谢。

3 个答案:

答案 0 :(得分:6)

在我的情况下,在HKLM / SOFTWARE(64位)注册表节点下指定的条目足以导致32位Win7主机上的安装失败。

使用免费的集成InstallShield产品,VS 2010/2013的症状相同。我能够在正在安装的项目上保留Any CPU设置。 MSI安装项目没有其他特殊设置。

答案 1 :(得分:5)

好的,我想出了TargetPlatform的位置。它与其他VS项目不同。

要访问TargetPlatform,请选择MSI项目并按F4键。中提琴!在“属性”网格中,您将找到带有选项的TargetPlatform字段:x86,x64,Itanium。注意:当您右键单击项目并从上下文菜单中选择“属性(Alt-Enter)”项时,这是一组完全不同的属性。 “Alt-Enter”属性与“F4”属性。

不幸的是,这与其他VS Project属性不同。通常,项目属性在主窗口中设置,而不是在“F4”属性网格中。因此,当其他线程讨论项目的属性时,我一直感到困惑,因为这是不同的。

例如one

VS中的ConfigurationManager不会影响MSI。我将所有依赖程序集保存在“任何CPU”上。另外,不要忘记在“启动条件”窗口中定位正确的框架(右键单击项目 - >视图 - > TargetConditions)。

希望这有帮助。

答案 2 :(得分:0)

我有点迟来回答这个问题! F4在Visual Studio 2017上不起作用。仅突出显示安装项目,然后右键单击右侧边栏上的“属性”选项卡。然后将“ TargetPlatform”更改为所需的选项。请注意:这与右键单击Setup项目不同。