首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Setup.exe(使用.net Framework4.0)安装产品时遇到错误

通过Setup.exe(使用.net Framework4.0)安装产品时遇到错误
EN

Stack Overflow用户
提问于 2011-03-06 01:04:36
回答 1查看 998关注 0票数 1

将代码从VS2005迁移到VS2010后,我们无法创建安装程序。我们已经完成了新的引导程序文件的所有设置,并且使用msbuild生成的setup.exe能够安装windows Installer4.5(如果系统中不存在),然后它成功地安装了.net Framework4.0(如果以前没有安装在系统上)。但是在这之后,它显示了下面的错误,并且没有继续安装我们的产品,这是它在我们使用VS2005时应该做的事情。

在安装.net框架之后,它显示了一个错误,粘贴在下面。

“该产品是为platform设计的,但正在英特尔上安装。请从制造商处获取正确的安装程序。”

注意:当我们手动双击setup.exe时,也会出现上述错误。

我们已经注意到一件事,当我们将setup.exe拖到命令提示符(通过命令提示符打开setup.exe )时,它成功地运行了产品安装快照。

一旦通过setup.exe安装了net Framework4.0,当我们试图通过Setup.msi安装产品时,它会继续进行产品安装,但只有在安装了Framework4.0的情况下才能正常工作。如果某个系统没有安装Framework4.0,则通过Setup.msi安装后该产品将无法工作(Setup.msi将只安装该产品,而不安装该框架)。简而言之,我们必须将setup.exe和setup.msi的功能合并在一起,这样在安装Framework4.0之后,它应该继续安装产品。

注意:我们使用WIX、巡航控制、msbuild和Nant来生成构建。

如果你们中的任何人遇到过这种错误,请帮助我们。您的支持将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-21 18:56:35

问题出在引导程序生成器中-即7.0A引导程序生成器。如果使用6.0A引导程序生成器生成setup.exe,则不会显示错误消息。

一种(hacky)解决方案是使用6.0A引导程序,并为从7.0A获取的必备包提供一个修改后的包描述符(product.xml)。

将这两个文件夹复制到C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\WindowsInstaller4_5

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX40

调整构建脚本中的GenerateBootStrapper任务以引用6.0A引导程序:

代码语言:javascript
复制
<GenerateBootstrapper
  ApplicationFile="Files\$(TargetName).msi"
  ApplicationName="Your app name"
  Culture="en"
  ComponentsLocation ="HomeSite"
  CopyComponents="True"
  Validate="True"
  BootstrapperItems="@(BootstrapperFile)"
  OutputPath="$(OutSubDir)"
  Path="C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\" 
/>

<ItemGroup>
  <BootstrapperFile Include="Microsoft.Windows.Installer.4.5">
    <ProductName>Microsoft Windows Installer 4.5</ProductName>
  </BootstrapperFile>
  <BootstrapperFile Include=".NETFramework,Version=v4.0">
    <ProductName>Microsoft .NET Framework 4.0</ProductName>
  </BootstrapperFile>
</ItemGroup>

您还需要调整DotNetFX40的product.xml来解决您将遇到的XSD验证错误(它们显然在product.xml语法中添加了一些特性)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5205294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档