问题标签 [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.

0 投票
0 回答
78 浏览

windows - .js 文件替换为大小完全相同的垃圾(html 内容),同时使用 NSIS 安装

在安装我们的软件时,至少在一台PC上,一些文件被替换为与之前文件完全相同大小的html内容和python,创建日期与其他文件完全相同。我想防病毒软件(AVG free)可能有问题,它看起来像防病毒软件分配内存来分析文件,无法读取它,然后在那个地方写入内存中的内容而不是文件。

我没有那台电脑,所以我的诊断可能性有限。是否有人遇到过类似的问题并找到解决方法?可能将文件重命名为不同的扩展名?我在听你的建议...

0 投票
2 回答
1867 浏览

nsis - 基于文件存在的 NSIS 脚本条件编译

我有一个基于 NSIS 的安装程序,我需要能够在不同条件下生成稍微不同的版本。

这些条件在编译时很容易建立,如果磁盘上存在特定文件,则可以使用替代品牌。我知道我可以使用 makesis.exe 的命令行选项来提供这种行为,但如果编译器可以为我处理这个问题会更好。

有没有办法制作编译时“IfExist”类型的逻辑?

0 投票
4 回答
2209 浏览

nsis - 创建 NSIS 包作为构建的一部分

有没有办法将 NSIS 包编译为构建的一部分?我使用 MSBuild。

更新:作为 NSIS 下载的一部分,有一个名为 makensis 的命令工具。我只是从我的构建脚本中执行了它并将它交给了我的 .nsi 文件。

例子:

0 投票
2 回答
1552 浏览

visual-studio - NSIS 视觉工作室颜色/字体/智能感知

是否有人添加了用于编辑 NSIS 文件的颜色/字体/智能感知?

0 投票
4 回答
3597 浏览

nsis - 如何检查 NSIS setup.exe 中的文件?

在我的 NSIS 脚本中,我使用了这一行:

我的问题是我的 subversion 存储库中有帮助目录(随着我们添加新功能,它会不断更新)。这意味着帮助目录包含一个 .svn 目录。

我希望查看 NSIS 创建的 setup.exe 的内容,以验证它没有 .svn 目录。

Ps 我实验看看 NSIS 是否在使用通配符时递归添加文件。它没有。但我想验证这一点,因此提出了这个问题。

0 投票
3 回答
1821 浏览

java - 在 Windows XP 上为我的 Lauch4J/NSIS 安装程序进行代码签名?

签署我的代码的程序是什么,以便当用户单击安装程序时它不会提示未知供应商。

我的设置是,

应用程序是基于java的。我用launch4j 包装jar 安装程序是基于nsis 的。

我的构建平台是xp。

安装完成后的另一件事是,我弹出一个提示,从 vista 不是 nsis 安装不成功,我该如何摆脱它?

0 投票
2 回答
2225 浏览

eclipse - 通过 Eclipse 自定义单选按钮 INI 页面

我正在使用 Eclipse 的 create InstallOptions 菜单创建一个带有单选按钮的自定义 INI 页面,用于重新打包 Blackberry Desktop 安装程序。

每种类型有 2 个部分:“Internet”和“Enterprise”。

我需要用户选择 2 个选项中的 1 个,根据他们的选择,该页面将继承在自定义页面中选择的选择,跳转到 INSTFILES 页面,然后继续到最后。

我找不到任何关于让 INI 页面加载到脚本中的具体文档(我可能搜索不正确),然后将数据从一页传递到下一页(根据我猜的字段?)

任何帮助表示赞赏。即使是告诉我我是盲人并且无法阅读文档(尽管链接会有所帮助:))

这是INI代码:


; 由 EclipseNSIS InstallOptions 脚本向导自动生成
;2009 年 7 月 29 日下午 5:42:56

[设置]
NumFields=7
Title=RIM BlackBerry Desktop 5.0 安装
CancelEnabled=1

[字段 1]
Type=RadioButton
Left=15
Top=28
Right=100
Bottom=38
Text=Internet
State=
Flags=NOTIFY

[字段 4]
类型=单选按钮
左=15
上=95
右=100
下=105
文本=企业
标志=通知

[字段 2]
类型=GroupBox
左=0
上=10
右=300
下=75
文本=

[字段 5]
类型=标签
左=30
上=42
右=235下
=52
文本=对于不在企业 (Exchange) 服务器上的用户

[字段 6]
Type=Label
Left=30
Top=111
Right=235
Bottom=121
Text=仅当您在 Exchange 服务器上时才选择此项

[字段 3]
类型=GroupBox
左=0
上=75
右=300
下=140

[Field 7]
Type=Label
Left=0
Top=0
Right=130
Bottom=10
Text=请选择您的安装方式


...这是 NSI 代码:


由 EclipseNSIS 脚本向导自动生成
2009 年 7 月 29 日下午 5:42:16

名称“黑莓桌面”

请求执行级别管理员

一般符号定义
!define VERSION 5.0.0.11
!define COMPANY RIM
!define URL http://www.blackberry.com

MUI 符号定义
!define MUI_ICON BBD.ico
!define MUI_LICENSEPAGE_RADIOBUTTONS

包含的文件
!include Sections.nsh
!include MUI2.nsh

保留文件
ReserveFile "${NSISDIR}\Plugins\AdvSplash.dll"

安装程序页面
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE license.txt
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
安装程序语言
!insertmacro MUI_LANGUAGE 英语

安装程序属性
OutFile RIM_BlackBerry_Desktop_5.0.exe
InstallDir "$TEMP\RIM BlackBerry Desktop 5.0 Setup Files"
CRCCheck on
XPStyle on
ShowInstDetails hide
VIProductVersion 5.0.0.11
VIAddVersionKey /LANG=${LANG_ENGLISH} ProductName "BlackBerry Desktop"
VIAddVersionKey /LANG=${LANG_ENGLISH } ProductVersion "${VERSION}"
VIAddVersionKey /LANG=${LANG_ENGLISH} CompanyName "${COMPANY}"
VIAddVersionKey /LANG=${LANG_ENGLISH} CompanyWebsite "${URL}"
VIAddVersionKey /LANG=${LANG_ENGLISH} FileVersion "${ VERSION}"
VIAddVersionKey /LANG=${LANG_ENGLISH} FileDescription ""
VIAddVersionKey /LANG=${LANG_ENGLISH} LegalCopyright ""

安装程序部分
Section /o Main SEC0000
SetOutPath $INSTDIR
SetOverwrite ifdiff
; 测试阶段
部分结束

SectionGroup /e "BlackBerry 桌面部分"
Section /o Internet SEC0001
SetOutPath $INSTDIR\DRIVERS
SetOverwrite ifdiff
; Execwait 'msiexec /i "$INSTDIR\BlackBerry USB and Modem Drivers_ENG (DM5.0b28).msi" /passive'
SetOutPath $INSTDIR
SetOverwrite ifdiff
; 文件 /r *
; ExecWait '"$INSTDIR\Setup.exe" /S/v/qb!'
部分结束

Section /o Enterprise SEC0002
SetOutPath $INSTDIR\DRIVERS
SetOverwrite ifdiff
; Execwait 'msiexec /i "$INSTDIR\BlackBerry USB and Modem Drivers_ENG (DM5.0b28).msi" /passive'
SetOutPath $INSTDIR
SetOverwrite ifdiff
; 文件 /r *
; 删除 /REBOOTOK "$INSTDIR\Setup.ini"
; 重命名 /REBOOTOK "$INSTDIR\Setup_Enterprise.ini" "$INSTDIR\Setup.ini"
; ExecWait '"$INSTDIR\Setup.exe" /S/v/qb!'
SectionEnd
SectionGroupEnd

部分说明
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SEC0000} $(SEC0000_DESC)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC0001} $(SEC0001_DESC)
!insertmacro MUI_FUNCTION_DESCRIPTION_END

安装程序语言字符串
TODO 使用适当的翻译更新语言字符串。

LangString SEC0000_DESC ${LANG_ENGLISH} "为非 Exchange/Enterprise BlackBerry 用户安装"
LangString SEC0001_DESC ${LANG_ENGLISH} "为 Exchange/Enterprise BlackBerry 用户安装"

0 投票
1 回答
1748 浏览

java - NSIS 设置默认程序以启动指定的文件类型

我正在使用 NSIS 脚本为我的 Java 程序创建安装程序。我的可执行 jar 是从 BAT 文件启动的。安装程序工作正常,但我想要一个特定的文件类型(仅作为示例“.zip”)始终使用我的应用程序作为默认值。现在,如果我双击该文件,我必须浏览到“程序文件 > 公司名称 > bat 文件”并指定始终使用此 BAT 文件来启动此文件类型。

有没有办法在 NSIS 脚本中指定这个,这样用户就不必浏览和设置总是使用复选框?如果是这样,怎么做?

提前感谢您提供的任何帮助。

0 投票
2 回答
1019 浏览

jar - NSIS 获取调用者文件路径

我有一个用 NSIS 编写的更改后的 Java Launcher exe 文件,它启动一个 JAR 文件(http://nsis.sourceforge.net/A_slightly_better_Java_Launcher)。我想向 JAR 传递一个参数,该参数是调用 exe 的文件的绝对路径。

在 BAT 文件中,我可以使用“start MyApp.jar %1”并填充 abs 路径,但这似乎无法在 NSIS 中完成(或者我没有正确编写它,因为我的参数字面意思是“%1 ”)。

我希望我的命令是:javaw -jar MyApp.jar AbsolutePath

这是我目前希望将该路径添加到的行:

StrCpy $0 '"$R0" -jar "${JAR}"'

任何建议,将不胜感激。谢谢。

0 投票
2 回答
428 浏览

installation - NSIS 与 Windows 游戏资源管理器的集成

我正在尝试为我的游戏获取 NSIS 安装程序,以便在 Vista/Win7 中使用游戏资源管理器注册游戏。在所有其他方面,我的安装程序工作正常 - 但我很难确定与游戏资源管理器集成的“正确”方式。在我的搜索中,我发现了以下资源:

我已经完成了游戏方面的任务(我的 .EXE 嵌入了 GDF 资源),但是安装程序的工作让我很沮丧。似乎现在应该有一个相当完善的方法来解决这个问题,但这些都不像是“它”。有没有人有这方面的经验?