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安装程序.有什么想法可以做到这一点?
根据Microsoft的说法,尝试运行可再发行组件将在Windows 8上自动触发该功能的内部激活。因此,如果将dotnetfx35可再发行组件与安装程序捆绑在一起,则无需进行任何更改。
但是,如果要按需下载可再发行组件,则检测Windows 8或更高版本并通过以下命令行触发安装会更加有效:
Dism /online /enable-feature /featurename:NetFx3 /All
Run Code Online (Sandbox Code Playgroud)
在Inno中,您应该通过事件函数Exec内部执行此操作PrepareToInstall。
解
感谢@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)
| 归档时间: |
|
| 查看次数: |
2856 次 |
| 最近记录: |