我一直在使用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安装程序。有什么想法可以做到这一点?
答案 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
执行此操作。