【问题标题】:Setup Project Minimal Requirement .NET Framework 3.5安装项目最低要求 .NET Framework 3.5
【发布时间】:2014-10-14 11:43:47
【问题描述】:

概述

我有一个在 .NET Framework 3.5 下运行的应用程序。由于客户端使用 Windows 7(默认:.NET 3.5)和 Windows 8 / 8.1(默认:.NET 4.5)。目前,如果系统上没有 .NET Framework (3.5),则会安装。

应用程序本身能够在 .NET 4.5 下运行,因此我想删除对 .NET Framework 3.5 的依赖。

问题

在安装项目中,我必须定义“启动条件”,其中列出了 .NET Framework 并且无法删除。 使用 3.5 版配置时,它将在 Windows 7 上运行并在 Win 8 上出现错误。当更改为 4.5 版时,它将在 Win 8 上运行,但不是 7。当我将版本更改为“任何”时,它会在 Win 7 上安装但抛出在 Win 8 上安装时出错,提示:“Error 1001 InstallUtilLib.dll.unknown error”。

问题

安装项目如何检查高于 .NET Framework 3.5 而不是“Any”的版本,如果我必须使用“Any”,如何让它在 Win 8 下工作?

详情

我正在使用带有“Visual Studio 安装程序项目”扩展 v1.0.0 的 VS2013

解决方案结构:

  • Custom_Action (NET 3.5, x86)
  • MyProject (NET 3.5, x86)
  • SetupProject(属性“TargetPlatform”设置为 x86)

Custom_Action 和 MyProject 的 app.config 设置如下: <configuration> <startup> <supportedRuntime version ="v2.0.50727"/> <supportedRuntime version ="v4.0"/> </startup> </configuration>

当我在 Win 7 上开始设置时,一切正常。 当我在 Win 8 上开始设置时,我会通过设置的配置对话框。它将停止并出现错误“错误 1001 InstallUtilLib.dll。未知错误”

【问题讨论】:

  • 从先决条件中取消 .NET Framework 依赖项工作得很好,很不清楚为什么不能取消选择它。您只需要一个 app.exe.config 文件,该文件使用 &lt;supportedRuntime&gt; 元素声明您的程序与 .NET v4 兼容。
  • 先决条件中未勾选 .NET Framework 依赖项。在“启动条件”下的安装项目中,我无法删除“.NET Framework”。如果我尝试删除它,我会得到:“此启动条件是必需的,无法删除,因为存在对 .NET Framework 的依赖。”。此外,Custom_Action 项目和主项目都有一个 app.config 文件指定supportedRuntime。
  • 好的,选择 Launch 条件并将 Version 属性更改为“Any”。
  • 我也试过了。我在Win8下得到上述错误然后:“错误1001 InstallUtilLib.dll。未知错误”但在Win7下没有。
  • 根据project page,今年 5 月 27 日发布了一个更新,旨在解决该错误。一定要更新。如果这没有帮助,请尝试修改 Setup 项目的 TargetPlatform 属性。

标签: c# .net installation setup-project


【解决方案1】:

一堆东西,不知道有没有具体的答案。

没有所谓的“任何”安装。您必须为每个架构构建一个:

http://blogs.msdn.com/b/heaths/archive/2008/01/15/different-packages-are-required-for-different-processor-architectures.aspx

因为我认为 InstallUtilLib 错误可能与 64 位和 32 位有关。您的自定义操作由 InstallUtilLib.dll 调用,并且该 Dll 特定于位数(它位于您的 MSI 文件中),因此您不希望尝试任何跨架构调用,这将失败,因此您的安装程序类使用的所有内容都必须也匹配安装的位数。因此,如果您构建了 x86 安装,则也将安装使用的所有代码和安装程序类设为 32 位。

确保您的 VS 安装程序扩展是最新的 - 较早的有 InstallUtilLib 错误。

在 VS 设置项目中没有办法说“至少这个 NET 级别”。我建议确保您没有跨架构调用问题并修复基本的 InstallUtilLib 错误以使其全部正常工作。您是否在任何地方发布了该问题的详细信息以及详细信息以查看是否可以解决?

【讨论】:

    猜你喜欢
    • 2014-02-06
    • 2011-01-30
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多