在使用 Inno Setup 安装期间报告已安装的 .NET Framework 版本

2024-02-12

我正在尝试使用 Inno Setup 来准备创建安装程序。我的第一次尝试是向用户报告当前安装了哪个 .NET Framework。我想出了以下脚本,它安装了一个令牌 exe,但它没有显示我想要显示已安装的框架版本的消息框。

[Setup]
AppName=NETFramework_Test
AppVersion=1.0.0
DefaultDirName=c:\al\NetFWTest\test
WizardStyle=modern
OutputDir=c:\al\NetFWTest

[Files]
Source: "c:\al\computer\miscsmallapps\tmpdir\tmpdir.exe"; DestDir: "{app}";
[Code]
var
  VersionNum: cardinal;

begin
  if RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full',
       'Version', VersionNum) then
    begin
      MsgBox('The installed .NET Framework version:' + IntToStr(VersionNum),
        mbInformation, MB_OK);
    end
  else
    begin
      MsgBox('Error reading the Registry...', mbInformation, MB_OK);
    end;
end.

当您已经可以使用时为什么要手动执行此操作IsDotNetInstalled https://jrsoftware.org/ishelp/index.php?topic=isxfunc_isdotnetinstalled?

例如:

[Code]
// InitializeSetup is called when the setup is starting.
function InitializeSetup(): Boolean;
begin
  Result := True;
  if not IsDotNetInstalled(net462, 0) then
  begin
    MsgBox('The required .NET Framework version 4.6.2 is not installed.',
      mbError, MB_OK)
    Result := False;
  end;
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在使用 Inno Setup 安装期间报告已安装的 .NET Framework 版本 的相关文章

  • Castle.Windsor可以自动解析具体类型吗

    我们正在评估 C 项目的 IoC 容器 Unity 和 Castle Windsor 都表现出色 我喜欢 Unity 的一件事 NInject 和 StructureMap 也这样做 是 显而易见如何构造它们的类型不必向 IoC 容器注册
  • 捕获非特定异常(例如 System.Exception)是一种不好的做法吗?为什么?

    我目前正在进行代码审查 下面的代码让我跳了起来 我发现这段代码存在多个问题 你是否同意我的观点 如果是这样 我该如何向我的同事解释这是错误的 顽固型 捕获一般异常 Exception ex 使用 if ex 是某物 而不是另一个 catch
  • 如何添加新的进度条来显示总体下载?

    代码正在运行 但是 现在我显示每个文件的下载进度progressBar1 但我想添加到设计器 已经添加 progressBar2显示总体下载进度 我如何计算并显示它progressBar2 using System using System
  • DynamoDb:删除具有相同哈希键的所有项目

    考虑下表 Table documentId Hash Key userId Range Key 如何编写代码来删除所有具有相同内容的项目documentId并且最好不取回物品 目前 您不能仅通过传递 Hash 键来删除所有项目 要删除项目需
  • wpf C# 中的内存泄漏

    我正在使用 GalaSoft MvvmLight 套件和 WPF Toolkit 开发 WPF MVVM v3 5 中 应用程序DataGrid and DatePicker 但是 每次加载应用程序时 我都会面临应用程序中的大量内存泄漏Us
  • ASP.NET 5 未在开发模式下运行

    我已将 ASP NET 5 项目更新为 beta 8 现在我们应该使用以下 Web 命令 commands web Microsoft AspNet Server Kestrel 现在我已经使用环境变量更新了我的项目 这也更新了我的 lau
  • .NET:为什么不检查枚举的范围/值?

    这一直困扰着我 也许对 NET 内部结构有一定了解的人可以向我解释一下 假设我定义一个枚举如下 public enum Foo Eenie 1 Meenie 2 Miney 3 Moe 4 现在 还假设我的代码中的某处有以下代码 int b
  • 对具有 Stream 类型成员的对象进行 JSON.NET 序列化?

    希望这是一个我忽略的简单修复 我有一个对象传递到事件处理程序中 我想使用 JSON NET 序列化该对象 如下所示 public void OnEvent IEventObject foo Serialize foo to string d
  • 无法使用VS2010 SP1进入.NET框架源代码

    我按照步骤http blogs microsoft co il blogs arik archive 2010 07 12 step into net framework 4 0 source code aspx http blogs mi
  • 获取上下文菜单的控制

    我有一个如下所示的上下文菜单 A 1 2 3 选择 1 2 或 3 后 我需要访问调用上下文菜单的对象 意思是如果这是 textbox1 的上下文菜单 那么我需要访问该对象 我该怎么做 忘了说了 这是一个WPF应用程序 所以我使用 Syst
  • EntLib5:登录应用程序块未记录到事件日志(例外:无法构造 LogWriter 类型)-任何人都可以帮忙吗?

    你好呀 我刚刚设置了 Enterprise Library 5 的日志记录应用程序块部分 我认为我已经完成了正确的操作 但它没有记录到事件日志 它在写入方法上出错并给出了以下异常 The type LogWriter cannot be c
  • .NET 中是否可以抑制第 2 代 GC 收集?

    我的程序分配了大量的实例 这些实例组成了长期存在的 DAWG 在构建此 DAWG 的过程中 有时进度会减慢 100 倍 这与 NET 执行第 2 代 GC 收集完美相关 在此期间 GC 时间百分比 为 99 5 并且 第 2 代总回收量 每
  • 未找到源,但无法搜索部分或全部事件日志

    我收到以下异常 我已在注册表编辑中的事件日志上授予对 Asp net 帐户的完全控制权 SecurityException 未找到源 但部分或全部事件 无法搜索日志 无法访问的日志 安全 System Diagnostics EventLo
  • 托管线程多久切换一次操作系统线程?

    据我所知 托管线程不能保证在同一操作系统线程上运行 如果 CLR 可以在操作系统线程之间切换托管线程 这种情况发生的频率是多少 频率受什么影响 我有一个单独的问题 https stackoverflow com questions 1979
  • 现在正在复制文件吗? [复制]

    这个问题在这里已经有答案了 可能的重复 C 不时检查文件是否存在并从中读取 https stackoverflow com questions 12578177 c sharp from time to time check if a fi
  • HttpWebRequest.AllowAutoRedirect=false 会导致超时吗?

    我需要测试大约 300 个 URL 以验证它们是否指向实际页面或重定向到其他页面 我在 NET 2 0 中使用 HttpWebRequest 编写了一个简单的应用程序来检查它 这是代码片段 System Net HttpWebRequest
  • 如何将隐藏字段从一个页面传递到另一页面?

    我有一个 Net 类库 我想从一次代码隐藏页面传递一个隐藏变量 并在另一个代码隐藏页面中获取它 请注意 我没有任何可以使用表单标签和 get post 方法的设计页面 aspx 页面 我们应该怎么做 注意 我想使用隐藏字段将值从一页传递到另
  • 回发或回调参数无效。使用“”启用事件验证

    当我从客户端回发页面时 出现以下错误 我有修改客户端 asp ListBox 的 JavaScript 代码 我们该如何解决这个问题 错误详细信息如下 Server Error in XXX Application Invalid post
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • 如何在 C# 中调整图像大小同时保持高质量?

    我从这里找到了一篇关于图像处理的文章 http www switchonthecode com tutorials csharp tutorial image editing saving cropping and resizing htt

随机推荐

  • 如何避免从 solr 检索整个存储字段

    我使用 sunspot 和 solr 作为 Rails 应用程序来搜索电子书内容 为了突出显示功能 我必须将 ebook content 设置为存储的文件 每次我查询 solr 的结果时 它都会发回有关该书的整个文档内容 其中使得查询非常慢
  • 在 Android 设置中防止“匹配的 Activity 可能不存在”

    大部分活动操作 用于启动各种设置活动 Settings http developer android com reference android provider Settings html类带有警告 在某些情况下 匹配的活动可能不存在 因
  • 如何使用正则表达式和 Java 计算文本中的音节

    我有文字作为String并需要计算每个单词的音节数 我尝试将所有文 本拆分为单词数组 然后分别处理每个单词 我为此使用了正则表达式 但音节模式并没有发挥应有的作用 请建议如何更改它以计算正确的音节数 我的初始代码 public int ge
  • ZipInputStream.getNextEntry 在某些 zip 文件上返回 null

    我有一个简单的代码来提取 zip 文件 它按预期工作得很好 但在测试过程中 我尝试使用一些 zip 文件 我从互联网下载的字体 图标和模板 来编写代码 以确保它应该提取任何 zip 文件已提供 但它不适用于某些 zip 文件 以下是重新生成
  • nginx 未知指令“上游”

    我使用 nginx 作为代理服务器将请求转发到我的 Gunicorn 服务器上 当我跑步时sudo nginx t c etc nginx sites enabled mysite我收到以下错误 emerg unknown directiv
  • Swift:为蓝牙中央管理器选择队列

    我正在开发一个应用程序 该应用程序将通过 BLE 与智能设备连接并与其通信 问题是 在哪个队列中处理蓝牙事件的最佳实践是 我读过很多教程 在所有教程中我发现了这一点 centralManager CBCentralManager deleg
  • 重命名存储库名称后更新origin

    我正在尝试将我的项目文件推送到我的存储库 但是当我这样做时 我会收到如下屏幕截图所示的错误 我之前在该项目文件中有一个存储库 然后将其删除 现在我在该项目文件中创建了另一个具有不同名称的存储库 但我现在收到这些错误 请告诉我应该做什么 将源
  • 向下滚动时,滚动 100vh 到底部

    我想达到同样的效果http www squaredot eu Intro http www squaredot eu Intro 因此 如果我向下滚动 正文必须滚动 100vh 到底部 而且如果向上滚动 主体必须向上滚动 100vh 我尝试
  • 如何在Python中启用辅助轴(twiny)的共享

    我正在尝试启用主轴和辅助轴的共享 下面的代码说明了示例图 该图包含两个水平轴 主轴网格显示为绿色 而另一个轴网格显示为红色 usr bin python coding utf 8 import numpy as np import matp
  • Android 模拟器:如何复制模拟器/AVD?

    我目前正在对 Google 应用商店 又名 Google Play 上已有的现有应用程序进行升级 我想测试客户升级时数据转换是否顺利 我有一个 AVD 安装了旧版本的应用程序 通常的做法是在此应用程序上运行新版本 看看它是否有效 但问题是
  • 了解 mod_proxy 和 Apache 2 以编写 comet-server

    我目前尝试为某种类型实现一个简单的 HTTP 服务器comet http en wikipedia org wiki Comet programming 技术 长轮询 XHR 请求 作为JavaScript对于跨域请求非常严格我有几个问题
  • Python/Tkinter - 单击时识别对象

    我正在尝试创建一个程序 根据先前的颜色将单击时的对象颜色从白色更改为黑色或从白色更改为黑色 我希望程序仅在对象是矩形时才更改颜色 我怎样才能让这一切发生 这是我的代码 import tkinter as tk root tk Tk cv t
  • 如何从firebase实时数据库获取字符串数组

    databaseReference FirebaseDatabase getInstance getReference sample databaseReference addValueEventListener new ValueEven
  • Python Pandas:当日期小于 13 时,pandas.to_datetime() 会切换日期和月份

    我编写了一个读取多个文件的代码 但是在我的一些文件中 每当日期小于 13 时 日期时间就会交换日期和月份 并且从第 13 天或以上开始的任何一天 即 13 06 11 仍然正确 DD MM YY 我试图通过这样做来修复它 但它不起作用 我的
  • django admin - 您无权编辑任何内容

    我跟着Django 文档 https docs djangoproject com en 1 8 topics auth customizing a full example创建自定义用户模型 同时使用我自己的字段扩展模型本身 于是就变成了
  • 在本地主机上启动 Jupyter Notebook 会导致“[Errno 49] 无法分配请求的地址”,但 ip=127.0.0.1 有效

    尝试启动 Jupyter Notebook 时出现以下错误 Jupyter Notebook Traceback most recent call last File Library Frameworks Python framework
  • ASP.Net Core JWT 令牌验证

    我需要验证在请求中收到的多个令牌 我遵循以下代码流程 services AddAuthentication AddJwtBearer Token1 options gt options TokenValidationParameters n
  • 是否可以调用不在 MATLAB 路径中的函数?

    我安装了一个库 其中有一些与 MATLAB 同名的函数 通过安装库 我的意思是添加路径 当我尝试调用这些函数时 它将使用该库的实现 但我想调用 MATLAB 实现 为了更简单 如果我有两个函数的绝对地址 如何指定要调用哪个函数 我搜索了答案
  • Github 访问错误 - 遇到 AggregateException [重复]

    这个问题在这里已经有答案了 我使用 github 存储库已经快一年了 从今天早上开始 我无法将我的代码推送到远程存储库 我在命令行中收到以下错误 致命 遇到 AggregateException Mindestens ein Fehler
  • 在使用 Inno Setup 安装期间报告已安装的 .NET Framework 版本

    我正在尝试使用 Inno Setup 来准备创建安装程序 我的第一次尝试是向用户报告当前安装了哪个 NET Framework 我想出了以下脚本 它安装了一个令牌 exe 但它没有显示我想要显示已安装的框架版本的消息框 Setup AppN