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

nem*_*mmy 4 .net inno-setup windows-8

我一直在使用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安装程序.有什么想法可以做到这一点?

Mir*_*ral 5

根据Microsoft的说法,尝试运行可再发行组件将在Windows 8上自动触发该功能的内部激活。因此,如果将dotnetfx35可再发行组件与安装程序捆绑在一起,则无需进行任何更改。

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

Dism /online /enable-feature /featurename:NetFx3 /All
Run Code Online (Sandbox Code Playgroud)

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


nem*_*mmy 5

感谢@Miral的建议.

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

GetWindowsVersionEx(Version);
if (Version.Major=6) and (Version.Minor=2) then
  begin
    Windows8:=true;
  end;
Run Code Online (Sandbox Code Playgroud)

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

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