安装项目最低要求.NET Framework 3.5

时间:2014-10-14 11:43:48

标签: c# .net installer setup-project

概述

我在.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上安装时抛出错误,说:"错误1001 InstallUtilLib.dll。未知错误"。

问题

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

详情

我正在使用VS2013和Visual Studio安装程序项目'扩展v1.0.0

解决方案结构:

  • Custom_Action(NET 3.5,x86)
  • MyProject(NET 3.5,x86)
  • SetupProject(Property' TargetPlatform'设置为x86)

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

当我在Win 7上开始设置时,一切正常。 当我在Win 8上开始设置时,我通过了安装程序的配置对话框。它将因错误&#34;错误1001 InstallUtilLib.dll而停止。未知错误&#34;

1 个答案:

答案 0 :(得分:0)

一堆事情,不确定是否有具体的答案。

没有“任何”安装这样的东西。您必须为每个架构构建一个:

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 Installer扩展是最新版本 - 之前的版本具有InstallUtilLib错误。

在VS安装项目中,没有办法说“至少这个NET级别”。我建议您确保没有跨架构调用问题并修复基本的InstallUtilLib错误以使其全部工作。您是否在任何地方发布了该问题的具体细节,以确定是否可以解决?