Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅当.NET Framework';还没有安装?_.net_Inno Setup - Fatal编程技术网

仅当.NET Framework';还没有安装?

仅当.NET Framework';还没有安装?,.net,inno-setup,.net,Inno Setup,是否有办法检查.NET Framework 4是否已安装,并仅在系统中未安装时安装 我知道,如何通过检查以下注册表项来确定是否安装了.NETFramework 4 hasDotnet4:= RegKeyExists(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\.NETFramework\policy\v4.0'); 如何根据上述检查有条件地运行.NET Framework 4安装?最简单的方法是使用参数,该参数允许您控制是否提取节中的某个文件,或者是否执行节中

是否有办法检查.NET Framework 4是否已安装,并仅在系统中未安装时安装

我知道,如何通过检查以下注册表项来确定是否安装了.NETFramework 4

hasDotnet4:=
RegKeyExists(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\.NETFramework\policy\v4.0');

如何根据上述检查有条件地运行.NET Framework 4安装?

最简单的方法是使用参数,该参数允许您控制是否提取节中的某个文件,或者是否执行节中的某个程序。以下脚本代码显示了它在有条件安装.NET Framework 4时的用法:

[文件]
来源:“dotNetFx40_Full_setup.exe”;DestDir:{tmp}\
标志:deleteafterinstall;检查:框架未安装
[运行]
文件名:“{tmp}\dotNetFx40_Full_setup.exe”;检查:框架未安装
[守则]
函数框架未安装:布尔值;
开始
结果:=
不存在注册表项(
HKEY_LOCAL_MACHINE,“SOFTWARE\Microsoft\.NETFramework\policy\v4.0”);
结束;

可能重复No,这是唯一的,只是找不到任何具有此答案的线程谢谢,我试试:)您可以在
[Files]
部分直接使用
检查:
语句,甚至跳过提取步骤。为什么不使用
ExpandConstant(“{dotnet40}”)呢
与直接注册表访问相比?@i486,检查注册表项更好,因为您没有增加异常处理开销。但您可以轻松修改此代码以检测特定版本,例如.NET 4.5。