概述
我在.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和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;
答案 0 :(得分:0)
一堆事情,不确定是否有具体的答案。
没有“任何”安装这样的东西。您必须为每个架构构建一个:
因为我认为InstallUtilLib错误可能与64和32位有关。您的自定义操作由InstallUtilLib.dll调用,并且该Dll特定于位数(它位于您的MSI文件中),因此您不希望任何尝试跨架构调用,这将失败,因此安装程序类使用的所有内容都必须也匹配安装的位数。因此,如果您构建了x86安装,那么安装32位也会使用所有代码和安装程序类。
确保您的VS Installer扩展是最新版本 - 之前的版本具有InstallUtilLib错误。
在VS安装项目中,没有办法说“至少这个NET级别”。我建议您确保没有跨架构调用问题并修复基本的InstallUtilLib错误以使其全部工作。您是否在任何地方发布了该问题的具体细节,以确定是否可以解决?