问题标签 [nsis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nsis - 如何隐藏所有窗口,直到我在 NSIS 中需要它们
我有一个 NSIS 安装程序,除非它需要下载其他文件,否则我希望完全保持沉默。我可以使用 SilentInstall 让它完全静音,但是我不能让我的下载对话框出现(我正在使用 InetLoad::load)。
我想告诉 NSIS 在我这样说之前不要显示任何窗口。我能想到的最好的方法是 HideWindow。Unfortantly 看起来 NSIS 默认显示窗口然后隐藏它导致闪烁。
如何防止闪烁的窗口?
示例代码:
debugging - 调试 NSIS 安装程序的方法?
尽管 NSIS 允许您构建功能强大的安装程序,但 NSIS 使用的“让我想起汇编的低级语言”很容易出错,因此,当您希望安装程序执行比编写文件更复杂的事情时,调试是必须的。
到目前为止,我使用了以下类似 Dr Printf的调试技术:
- 在
.nsh
我到处都包含的文件中,我根据定义的值定义了一个NSIS_DEBUG_MSG
宏DEBUG
- 如果打开,宏将触发带有调试消息
DEBUG
的MessageBox - 如果关闭,宏将不执行任何
DEBUG
操作
- 如果打开,宏将触发带有调试消息
这种方法对我很有帮助,但也有一些缺点:
- 它要求我填写我认为失败的代码,
NSIS_DEBUG_MSG
并多次调用并重建安装程序,直到我获得足够的信息来解决问题 - 如果我的问题是安装程序本身失败(如果安装程序死掉),那对我没有好处
所以我想知道的是你对这些安装程序使用什么调试方法,希望我能改进我的。
nsis - NSIS:任务计划程序:仅在登录时运行复选框
我在使用 NSIS 设置计划任务时遇到问题。
- 我不会知道我为其设置任务的用户的所有密码,因此我需要选中“仅在登录时运行”复选框来解决这个问题。
- 除了设置任务之外,我无权将其他软件安装到计算机上,因此我必须最好使用 Windows 任务计划程序。
- 下面的任务设置任务,选中复选框但不运行设置的任务。它不会运行任务,直到我再次浏览到同一个文件,然后单击确定。现在任务将运行得很好。我在另一个关于 JT.exe 的论坛上询问了这种行为,因为它做同样的事情并被告知“它没有将登录设置为由 schtasks.exe 或 GUI 设置的批处理作业用户权限。”
- 我试图创建任务,然后通过命令行对其进行修改。它仍然不起作用。
- 目标是使用 NSIS(或其他任何东西)创建一个 Windows XP 计划任务,该任务可以正确执行并选中 Task Scheduler 1.0 中的“仅在登录时运行”复选框。
有人可以帮忙吗?
这是当前的 NSIS 脚本
installation - 作为 NSIS 安装程序脚本的一部分对 Windows 驱动器进行碎片整理?
我需要安装一个包含很多文件的软件。我们的经验表明,在高度碎片化的硬盘上会导致性能非常差。所以我想在我的安装程序中包含自动磁盘碎片整理(我打算使用 NSIS 编写)。如何在安装程序中包含碎片整理命令并读取结果?
nsis - NSIS:如何检查我安装的 *.dll 是否在 $SYSDIR 中?
我想写一个 NSIS 脚本,我们暂时称它为 setup.nsi,并检查 $SYSDIR 中是否已经存在几个所需的 dll 文件
让我强调一下“几个”这个词
我从 nsis IfFileExists 文档中了解到,如果我输入:
IfFileExists $SYSDIR\blabla.dll +2 +1
然后它检查 blabla.dll 是否在 $SYSDIR 中 .. 但是如果我想知道 *.dll 是否从 setup.nsi 复制文件的位置(即我有兴趣安装的 *.dll ......他们是很多..所以我不能到处检查所有的名字)存在于 $SYSDIR
在卸载过程中,我希望能够从 $SYSDIR 中删除它们(使用一些卸载日志来查看我是否真的将它们复制到 $SYSDIR 中......以及通配符问题)。
请耐心等待我,因为我对 NSIS 脚本真的很陌生。
windows - 32 位 NSIS 是否可以启动 64 位程序?
我正在从 32 -> 64 位移植一个 Windows 程序。它有一个使用 NSIS 编写的 32 位安装程序。我可以使用 32 位 NSIS 安装程序启动我的新 64 位 exe 之一吗?我认为没有 64 位版本的 NSIS ......
silverlight - 用于安装 silverlight 的 nullsoft 安装程序
有谁知道silverlight是否可以打包到NSIS等安装程序中?
windows-7 - 如何通过 NSIS 在 windows7 中清除 IconCache
我在 Windows 7 中通过 NSIS 安装我的应用程序时遇到问题。应用程序安装成功,但 myApplicationsIcon 窗口显示通用图标而不是。我知道如何手动解决这个问题(删除 AppData\Local 中的 IconCache.db),但是如何使用 NSIS 脚本来解决这个问题?
问候,德米特里。
wix - 使用 WiX 编写可升级的 msi 包
我正在为现有产品编写安装程序,早期的安装程序是用NSIS(Nullsoft Scriptable Install System)编写的。我必须使用WiX为这个产品编写一个基于 msi 的安装程序。我对此有一定的疑问:-
- 如何检测我的应用程序是否安装在目标机器上?该应用程序可能已使用 NSIS(旧版本)或 MSI(现在开始)安装。
- 如果目标机器上安装了旧/相同版本的产品,如何编写可以升级的 WiX 安装程序。我在几个网站上找到了这个主题,但所有这些都不起作用。具体来说,我想知道每个版本的软件需要在安装程序代码中更改哪些信息(GUID、版本等)。
- 我们产品的三个/四个版本每年都会发布。哪种安装程序最适合我?
请注意,如果我只是在 Wix 代码中更改产品元素的版本,那么新的安装程序将无法替换旧的安装程序。当我双击较新版本的安装程序时,它会显示一个错误对话框,说
该产品的另一个版本已安装。无法继续安装此版本。要配置或删除此产品的现有版本,请使用“控制面板”上的“添加/删除程序”。
示例代码:
windows-installer - 将 NSIS 脚本构建为 MSI 包
有没有办法将 Nullsoft 安装程序脚本 (NSI) 设置编译为 MSI 包而不是 EXE?