【发布时间】: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 文件,该文件使用
<supportedRuntime>元素声明您的程序与 .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