- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个应用程序,我必须检查 .NET FW 3.5 是否已安装。如果已经安装,我想打开一个消息框,要求用户从 Microsoft 网站下载它并停止安装。
我找到了以下代码。你能告诉我吗:
a) 我应该从哪里调用这个函数?b) 我应该检查是否已安装 .NET FW 3.5 或更高版本?例如如果安装了固件 4.0 - 是否需要安装 3.5?
谢谢
function IsDotNET35Detected(): Boolean;
var
ErrorCode: Integer;
netFrameWorkInstalled : Boolean;
isInstalled: Cardinal;
begin
result := true;
// Check for the .Net 3.5 framework
isInstalled := 0;
netFrameworkInstalled := RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5', 'Install', isInstalled);
if ((netFrameworkInstalled) and (isInstalled <> 1)) then netFrameworkInstalled := false;
if netFrameworkInstalled = false then
begin
if (MsgBox(ExpandConstant('{cm:dotnetmissing}'), mbConfirmation, MB_YESNO) = idYes) then
begin
ShellExec('open',
'http://www.microsoft.com/downloads/details.aspx?FamilyID=333325fd-ae52-4e35-b531-508d977d32a6&DisplayLang=en',
'','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
end;
result := false;
end;
end;
最佳答案
如果您想在安装开始时但在显示向导表单之前执行检查,请使用 InitializeSetup
它的事件处理程序。当您向该处理程序返回 False 时,安装程序将中止,当返回 True 时,安装程序将开始。这是您发布的一些优化脚本:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
[CustomMessages]
DotNetMissing=.NET Framework 3.5 is missing. Do you want to download it ? Setup will now exit!
[Code]
function IsDotNET35Detected: Boolean;
var
ErrorCode: Integer;
InstallValue: Cardinal;
begin
Result := True;
if not RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5',
'Install', InstallValue) or (InstallValue <> 1) then
begin
Result := False;
if MsgBox(ExpandConstant('{cm:DotNetMissing}'), mbConfirmation, MB_YESNO) = IDYES then
ShellExec('', 'http://www.microsoft.com/downloads/details.aspx?FamilyID=333325fd-ae52-4e35-b531-508d977d32a6&DisplayLang=en',
'', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
end;
function InitializeSetup: Boolean;
begin
Result := IsDotNET35Detected;
end;
关于.net-4.0 - .NET Framework 作为使用 Inno-Setup 安装的先决条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12976576/
我正在尝试实现 https://github.com/PHP-FFMpeg/PHP-FFMpeg 我将 src/FFMpeg 文件夹复制到我的包含文件夹中,并确保我的自动加载器知道在哪里可以找到所有内
我正在使用 VS 2010。我的应用程序是 ClickOnce 部署的。我的三个先决条件是 CR 2010 和 .NET 4.0。 当我运行 ClickOnce 时,首先运行 CR 2010 先决条件
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
我想知道在编写 JQuery 或解析 JSON 时需要附加哪些必要的文件作为脚本。在一些示例中,我看到开发人员引用:jquery-1.3.2.min.js,有些则使用 jquery.min.js。对于
如果我理解正确的话,ClickOnce 仅通过包含先决条件信息的 setup.exe 文件在首次安装应用程序时检查先决条件。如果用户将来打开该应用程序,它将检查新版本,但不会再次启动 setup.ex
是否可以在 YAML 中使用前提条件我没有找到除此页面之外的任何来源 http://www.liquibase.org/documentation/yaml_format.html 但我正在寻找相当于
我有一些组件MSI软件包,需要一起安装才能形成最终应用程序。 问题是:组成软件包的组件可以被更新,并且该组件可以在http文件服务器上重新启动。我应该采取什么方法? 我正在编写的安装程序是“主”安装程
目标:给定一个没有安装 python 的 Debian 服务器(以及其他一些缺少 ansible 先决条件),使用 ansible 来安装它们,这样我就可以使用普通的 ansible 模块(几乎所有模
我将 .NET Framework 4 作为先决条件添加到我的安装包中。安装此包时,错误报告说安装 .NET 4 需要 WIC“windows 镜像组件”,我也将其添加为先决条件。 但是由于已经安装了
我想检查基类的前提条件,以便我知道子类型将始终使用有效的构造函数参数。 让我们以一个构造函数为例: 接受 2 个或更多参数 接受不同类型的参数 对于一个参数,它执行多项检查(例如,字符串不为空并且不为
我尝试构建 a Perl distribution for a home-made module , 来自 Module::Starter根据。每个测试都在我的机器上通过,但当我将其上传到 CPAN
我通过导入 VS2010 安装部署项目(使用集成向导)在 VS2013 中创建了 InstallShield 安装项目。当我尝试编译它时,它说: ISEXP : error : -7067: Your
我正在使用 Wix,并且我有针对 Dotnet 4.0 以 .net 编写的自定义操作。安装过程中,welcome dlg 后,会在系统中检查 dotnet 框架,如果不存在,则会显示 dotnetf
我正在处理上述大学数据库,想知道如何强制执行先决条件表。我有它,所以每个 crs_code 都有一个与 crs_requires 相关的先决条件。但是,我需要想出一种方法,以便当学生去上课时,它会检查
我用 C#、.NET Framework 2.0 编写了一个 Windows 窗体应用程序,它使用 System.Data.OleDb 与 SQL Server 2000 数据库对话,该数据库运行良好
python 是否有任何等效于 java 的先决条件库。例如 在java中,你可以这样检查参数: public void dummymethod(Cat a, Dog b) { Precondi
我有一个 WiX 安装程序,我想检查 .Net 3.5,如果它不存在,请安装它。我的 wixproj 文件中有以下几行: .NET Framework 3.5 WIndows I
当我的 Wix 包尚未安装在客户端的机器上时,如何让我的 Wix 包下载所需的 .NET Framework?我已经有条件检查已安装的 .NET 版本,但我不确定如何在未找到时下载和安装它。 Clic
我有这样的工作: target1.PREREQUISITES = file11 file12 file13 target2.PREREQUISITES = file21 file22 file23 $
编辑: 经过更多搜索后,我找到了完成此操作的方法。我用了This preview page改变我的 Product.xml然后我复制了一些现有的 Product.xml 以检查它是否已经安装。 因此,
我是一名优秀的程序员,十分优秀!