使用Inno Setup在Windows 8上安装.Net 3.5

时间:2013-06-19 00:30:42

标签: .net windows-8 inno-setup

我一直在使用Inno Setup检查并安装我的某个应用程序的.NET 2.0框架。通过检查注册表项并简单地下载.NET安装程序并在安装我的应用程序之前进行安装,它的工作非常糟糕。

根据我的理解,这在Windows 8中不起作用.Windows 8在.NET 3.5软件包中捆绑.NET 2.0,该软件包通过W8“安装Windows功能”小程序启用。我宁愿让Inno触发安装Windows功能小程序以启用.NET 3.5支持,而不是下载.NET 2.0安装程序。有什么想法可以做到这一点?

2 个答案:

答案 0 :(得分:5)

感谢@Miral的建议。

添加了额外的检查以确定Windows 8是否正在运行:

GetWindowsVersionEx(Version);
if (Version.Major=6) and (Version.Minor=2) then
  begin
    Windows8:=true;
  end;

然后在NextButtonClick事件中包含此代码并检查CurPage是否为wpReady:

 if dotNetNeeded and Windows8 then
    begin
      Exec('Dism', ' /online /enable-feature /featurename:NetFx3 /All /NoRestart', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
    end;

答案 1 :(得分:4)

According to Microsoft,尝试运行可再发行组件应该会自动触发Windows 8上该功能的内部激活。因此,如果您将dotnetfx35可再发行组件与您的安装程序捆绑在一起,那么您不需要更改任何内容。

但是,如果您按需下载可再发行组件,则检测Windows 8或更高版本并通过以下命令行触发安装会更有效:

Dism /online /enable-feature /featurename:NetFx3 /All

在Inno中,您应该通过Exec事件函数中的PrepareToInstall执行此操作。