相关疑难解决方法(0)

如何使用InnoSetup安装.NET框架作为先决条件?

我有一个类似于Inno Setup的问题:验证是否已安装.NET 4.0,但它似乎略有不同.

[Files]
Source: "dependencies\dotNetFx40_Full_x86_x64.exe"; DestDir: {tmp}; Flags: deleteafterinstall; Check: FrameworkIsNotInstalled
Source: "C:\Windows\Microsoft.NET\assembly\GAC_MSIL\MySql.Data\v4.0_6.5.4.0__c5687fc88969c44d\MySql.Data.dll"; DestDir: "{app}\lib"; StrongAssemblyName: "MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, ProcessorArchitecture=MSIL"; Flags: "gacinstall sharedfile uninsnosharedfileprompt"

[Run]
Filename: {tmp}\dotNetFx40_Full_x86_x64.exe; Description: Install Microsoft .NET Framework 4.0; Parameters: /q /norestart; Check: FrameworkIsNotInstalled

[code]
function FrameworkIsNotInstalled: Boolean;
begin
  Result := not RegKeyExists(HKEY_LOCAL_MACHINE, 'Software\Microsoft\.NETFramework\policy\v4.0');
end;
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在尝试向GAC注册文件.不幸的是,在某些机器上可能没有安装.NET框架.所以我需要先安装它.无论如何,我尝试注册文件之前,我是否可以强制安装.NET运行时?

.net inno-setup

34
推荐指数
3
解决办法
3万
查看次数

如何仅在尚未安装.NET Framework时安装它?

有没有办法检查是否已安装.NET Framework 4并仅在不在系统中时安装它?

我知道,如果通过检查以下注册表项来安装.NET Framework 4,我如何确定?

hasDotnet4 :=
  RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\.NETFramework\policy\v4.0');
Run Code Online (Sandbox Code Playgroud)

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

.net inno-setup

12
推荐指数
1
解决办法
1万
查看次数

如果用户安装了.Net Framework,如何在Windows注册表中检测?

如果用户安装了.Net Framework,如何在Windows注册表中检测到?我不是在寻找基于.Net的解决方案,因为查询来自InnoSetup.

我从阅读Stack Overflow上的另一篇文章了解到.Net Framework是4.0的现场升级.

我已经知道如何检查用户是否在系统上安装了4.0版,即通过检查以下内容:

function FindFramework(): Boolean; 
var
 bVer4x0: Boolean;
 bVer4x0Client: Boolean;
 bVer4x0Full: Boolean;
 bSuccess: Boolean;
 iInstalled: Cardinal;
begin
 Result := False;
 bVer4x0Client := False;
 bVer4x0Full := False;


 bVer4x0 := RegKeyExists(HKLM, 'SOFTWARE\Microsoft\.NETFramework\policy\v4.0'); 
 bSuccess := RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v4    \Client', 'Install', iInstalled);
 if (1 = iInstalled) AND (True = bSuccess) then bVer4x0Client := True;
 bSuccess := RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v4        \Full', 'Install', iInstalled);
 if (1 = iInstalled) AND (True = bSuccess) then bVer4x0Full := True;

 if (True = bVer4x0Full) …
Run Code Online (Sandbox Code Playgroud)

.net registry install inno-setup

3
推荐指数
1
解决办法
5058
查看次数

标签 统计

.net ×3

inno-setup ×3

install ×1

registry ×1