如何在运行时 (NSIS) 中获取 nsh 代码中丢失的 dll 文件错误回调

     2023-02-23     275

关键词:

【中文标题】如何在运行时 (NSIS) 中获取 nsh 代码中丢失的 dll 文件错误回调【英文标题】:How to get missing dll file error callback in nsh code in run time (NSIS) 【发布时间】:2019-04-15 03:31:13 【问题描述】:

我正在使用 NSIS 为我的软件创建安装程序。我的软件依赖于 Microsoft c++ 再分发软件。因此,在安装我的软件时,如果用户系统有一些 .dll 文件丢失/损坏,那么安装程序会显示错误。

我希望每当出现此类错误时,NSIS 脚本都会收到错误回调,我首先启动 c++ 再分发软件安装。

那么如何实现呢?

谢谢

【问题讨论】:

安装程序在技术上并未显示此错误,它是 Windows 加载程序。您还忘记发布代码以显示您的执行方式。 【参考方案1】:

发送这个可执行文件。 https://www.microsoft.com/en-us/download/details.aspx?id=48145

安装

ExecWait '"vc_redist.x86.exe"'

一个不让它到处乱扔的聪明方法是:

InitPluginsDir  ; If you haven't already
SetOutPath $PLUGINSDIR
File vc_redist.x86.exe
ExecWait '"vc_redist.x86.exe"'
SetOutPath $INSTDIR

它会在控制面板中创建自己的安装条目,因此您在卸载时什么也不做。

(如果您的程序是 64 位,则需要 64 位版本,并且在这种情况下会发现 pluginsdir 方法更不容易出错。)

【讨论】:

通过 NSIS 静默运行 Powershell

】通过NSIS静默运行Powershell【英文标题】:RunPowershellSilentlyviaNSIS【发布时间】:2016-01-1116:57:52【问题描述】:我有一个我想静默运行的powershell脚本。我正在使用NSIS脚本,运行.exe文件时它仍在提升powershell命令提示符..有没有办法... 查看详情

如何在 NSIS 脚本中使用 REMOVE 或 REPAIR 功能?

】如何在NSIS脚本中使用REMOVE或REPAIR功能?【英文标题】:HowtouseREMOVEorREPAIRfeatureinNSISscript?【发布时间】:2012-11-1509:16:49【问题描述】:我已经使用nsis脚本来创建安装程序。当我以相同的名称第二次运行我的安装程序时,应该检... 查看详情

c# - 如何在运行时从模块代码中获取 PowerShell 模块版本

】c#-如何在运行时从模块代码中获取PowerShell模块版本【英文标题】:c#-HowtogetthePowerShellmoduleversionfrominsidethemodulecodeatruntime【发布时间】:2021-03-2705:30:55【问题描述】:我有一个用于实现PowerShell命令的C#PSCmdlet类,我想在运行命令... 查看详情

如何检查 NSIS 中特定端口上运行的进程

】如何检查NSIS中特定端口上运行的进程【英文标题】:HowtochecktheprocessrunningonspecificportinNSIS【发布时间】:2012-05-0622:58:02【问题描述】:我正在使用NSIS为我的应用程序开发安装程序。我需要对此安装程序做的是检查端口80是否可... 查看详情

如何在nsis卸载时线运行一个exe文件?(exe文件在卸载程序目录下)用啥代码?

参考技术A试试改下文件名,改成1.exe,然后放到一个简单的目录下,比如D:\\,一般可以解决。个人推荐《UML2.0实战教程(Trufun)》、《UML用户指南(第2版追问你再说什么-- 查看详情

如何在路径中获取最后一个文件夹时解决运行时错误9,下标超出范围(代码片段)

尝试使用数组检索路径中的最后一个文件夹,它正在运行,但在脚本执行结束时返回运行时错误9,下标超出范围。`DimaAsVarianti=5Forn=LBound(files)ToUBound(files)a=Split(files(n),"")FnameInLoop=a(UBound(a)-1)Cells(i,1).Value=FnameInLoopi=i+1Nextn`答案@Mathieu... 查看详情

java示例代码_如何在NSIS中获得Java Swing应用程序的窗口句柄

java示例代码_如何在NSIS中获得Java Swing应用程序的窗口句柄 查看详情

如何在 TypeScript 中进行运行时类型转换?

】如何在TypeScript中进行运行时类型转换?【英文标题】:HowtodoruntimetypecastinginTypeScript?【发布时间】:2015-11-1700:12:12【问题描述】:目前我正在做一个typescript项目,我真的很喜欢TypeScript带来的类型推断。但是-当从HTTP调用中获... 查看详情

如何在 Nsis 中创建 zip 文件

】如何在Nsis中创建zip文件【英文标题】:HowtocreatezipfileinNsis【发布时间】:2018-05-0209:46:14【问题描述】:是否有可能在我的安装过程中(在运行时)创建一个ZIP文件,其中包含我要安装的所有文件。我需要这个来部署我们的软... 查看详情

如何在运行时创建的 MFC 中获取 Treeview(CTreeCtrl) 的 Click 事件?

】如何在运行时创建的MFC中获取Treeview(CTreeCtrl)的Click事件?【英文标题】:HowtogetClickEventofTreeview(CTreeCtrl)inMFCcreatedatruntime?【发布时间】:2010-09-2105:19:48【问题描述】:我在MFC应用程序的运行时创建了一个树视图,我添加了几个... 查看详情

如何在运行时将代码加载到 Android 中

】如何在运行时将代码加载到Android中【英文标题】:HowtoloadcodeintoAndroidatruntime【发布时间】:2017-05-2703:20:22【问题描述】:我有一个市场上几乎60mb的应用程序,安装后它最多需要1GB的内存。我想减少我的应用程序的内存占用,... 查看详情

用户运行托管 IIS 链接时如何在 asp.net 中获取客户端 IP 地址

】用户运行托管IIS链接时如何在asp.net中获取客户端IP地址【英文标题】:HowtogettheclientIPaddressinasp.netwhenuserrunshostedIISlink【发布时间】:2021-07-1805:32:12【问题描述】:我在IIS中托管我的代码,我想在任何用户使用我的托管链接登录... 查看详情

如何在 c# 中运行多个任务并在完成这些任务时获取事件?

】如何在c#中运行多个任务并在完成这些任务时获取事件?【英文标题】:Howtorunmultipletasksinc#andgetaneventoncompleteofthesetasks?【发布时间】:2015-10-2001:46:02【问题描述】:我正在重新运行Task完成后。下面是我在应用程序的Application_St... 查看详情

获取运行时错误1004如何停止错误(代码片段)

...代码,我一直得到运行时错误1004。您可以在以下代码中如何或者您可以建议在ActiveCell.Offset(1,0).Select停止错误:SubRowCounter(count)Counter=1DoUntilActiveCell=""Counter=counter+1ActiveCell.Offset(1,0).SelectLoopCount=Counter>2000000答案该代码计算有多少... 查看详情

如何在servlet中获取后台运行脚本的输出(代码片段)

...让脚本在后台运行以创建文件,即使在其他页面上工作,如何在文件完成时在servlet中获取输出答案这是获取命令执行输出的代码,但是您无法获得需要更多时间的后台进程的输出。对于更耗时的命令,您必须使用javascript安排命... 查看详情

如何:获取代码覆盖率数据

...会收集代码覆盖率数据。获取代码覆盖率数据过程介绍了如何选择要检测的文件。注意默认情况下,在运行单元测试时测量代码覆盖率。因此,在运行单元测试时,只有在已关闭代码覆盖率数据收集功能,或者当您希望对其他项... 查看详情

如何在运行时获取 UITableView 的内容大小?

】如何在运行时获取UITableView的内容大小?【英文标题】:HowtogetcontentsizeofUITableViewinruntime?【发布时间】:2017-06-1512:28:57【问题描述】:我正在尝试在运行时获取UITableView的内容大小,我在其中处理库,当弹出视图时会执行一些... 查看详情

如何在 CPACK 和 NSIS 中为文本文件添加开始菜单条目

】如何在CPACK和NSIS中为文本文件添加开始菜单条目【英文标题】:HowdoIaddastartmenuentryforatextfileinCPACKansNSIS【发布时间】:2013-02-1211:41:33【问题描述】:我想在开始菜单中输入release_notes.txt或release_notes.html。当我在菜单中选择release_... 查看详情