我有一个名为setup.exe的基于NSIS的安装程序文件.当我进入Properties-> Details时,很多细节都缺失了.当我运行安装程序时,UAC请求提升权限(这没关系),但发布者是"未知".
如何在最终的setup.exe中设置这些属性,最好只更改NSIS安装程序脚本本身?
我有一个nsis安装程序脚本为我正在工作的应用程序,它可以在桌面和开始菜单文件夹中放置一个快捷方式,但每个快捷方式在路径中有错误的开始,因此该应用程序将数据文件保存到快捷方式的位置.
是否有一种简单的方法可以改变路径的起点,因为文档对此事的帮助不大?
Section "Desktop Shortcut" SHORTCUT
SetOutPath "$DESKTOP"
CreateShortcut "${FULL_APP_NAME}.lnk" "$INSTDIR\${APP_NAME}.exe" "" "$ICONDIR\${DESKICO}"
SectionEnd
Run Code Online (Sandbox Code Playgroud) NSIS有一个您在脚本中定义的Name变量:
Name "MyApp"
Run Code Online (Sandbox Code Playgroud)
它定义了安装程序的名称,它显示为窗口标题等.
有没有办法从我的主EXE中提取.NET版本号并将其附加到名称?
这样我的安装程序名称将自动为"MyApp V2.2.0.0"或其他什么?
当我打开我的安装程序(我使用NSIS创建)时,会出现UAC对话框,其中包含有关我的安装程序的信息.字段Publisher是"未知".我听说过对应用程序进行数字签名,您知道如何在NSIS中执行此操作吗?
如何将字段/属性Publisher设置为"我的安装程序"或其他文本?
我认为下面的代码应该设置Publisher字段,但它没有,它仍然是'未知':
InstallDir "abc"
Name "def"
OutFile "def.exe"
VIProductVersion "1.0.0.0"
VIAddVersionKey ProductName "def"
VIAddVersionKey Comments "MY DESCRIPTION"
VIAddVersionKey CompanyName "My Installer"
VIAddVersionKey LegalCopyright "MY COMPANYNAME"
VIAddVersionKey FileDescription "MY DESCRIPTION"
VIAddVersionKey FileVersion 1
VIAddVersionKey ProductVersion 1
VIAddVersionKey InternalName "def"
VIAddVersionKey LegalTrademarks "PTY LTD"
VIAddVersionKey OriginalFilename "def.exe"
Section
DetailPrint "Hello World"
SectionEnd
Run Code Online (Sandbox Code Playgroud) 我有一个批处理文件,我需要在我的NSIS安装程序中运行.它必须在提取完所有文件后运行(我想这很明显,否则批处理文件还不存在).
我尝试将MUI_PAGE_CUSTOMFUNCTION_PRE与完成页面一起使用以运行它,但是当它到达脚本的那一部分时,它似乎跳过它.以下是我如何调用它.
;;Finish Page
!define MUI_PAGE_CUSTOMFUNCTION_PRE Done
!insertmacro MUI_PAGE_FINISH
Function Done
ExecWait '"$INSTDIR\BatchFile" "$INSTDIR" "$DATA_FOLDER"'
FunctionEnd
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
UPDATE
我现在尝试使用以下内容:
ExpandEnvStrings $0 %COMSPEC%
ExecWait '"$0" /C "$INSTDIR\batch.bat" "$INSTDIR" "$DATA_FOLDER"'
Run Code Online (Sandbox Code Playgroud)
这不起作用,所以我拿出/ C看看cmd提示符说的是什么(它弹出,但立即关闭),好像它执行了cmd.exe,但就是这样,它没有完成其余的执行.
更新#2
可以在这里找到导致我使用它的核心知识:
无论出于何种原因.bat文件都不同意ExecWait.
到底:
ExecWait '"$INSTDIR\BatchFile.cmd" "$INSTDIR" "$DATA_FOLDER"'
Run Code Online (Sandbox Code Playgroud)
工作得很好.
我正在创建我的第一个NSI脚本,我只是想知道我是否可以从NSIS执行命令行命令或者我应该只执行批处理文件?我真的不知道从哪里开始,其他类似的话题已经过了一点.
我在dir\program\prog.exe上的磁盘上有一个可执行文件我想在DoK的根目录下有一个可执行文件的快捷方式,也就是说,prog.lnk会引用dir\program\prog .可执行程序.
但是,似乎prog.lnk不能有相对目标.当DoK将为其分配不同的驱动器号时,这是一个问题,具体取决于它连接到哪台PC.
任何建议,除了在根目录中放置prog.exe的明显的建议?
(最终,我想在安装时使用nsis执行此操作)
谢谢,
罗尼
我想在我使用带有MUI2的NSIS创建的安装程序的欢迎屏幕中添加一个显示完整版本字符串的标签.
我已经搜索了有关如何执行此操作的信息,但只找到了使用MUI_INSTALLOPTIONS*的引用,我发现它已被弃用于MUI2.另一个提到使用INSTALLOPTIONS*的新版本具有相同的选项,但我无法使其正常工作.我最后还找到了使用nsDialogs的参考 - 这就是我用于自定义页面的内容.但是 - 我没有找到关于如何更改MUI2.nsh附带的任何现有页面的参考或示例.
我找到了一种更改MUI_HEADERTEXT的方法,但这不会影响欢迎屏幕.我希望有一种方法可以改变欢迎文本.也许使用MUI_WELCOMETITLE和MUI_WELCOMEBODY或类似的.
在InnoSetup中,有一个名为run的部分将执行exe,批处理文件和msi.我们还可以为此运行提供命令行参数.
我提供了Innosetup样本:
[Run]
Filename: "{app}\msdirent.exe ";
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\NETCFSetupv2.msi""" ; Check:ShouldInstallComCtlUpdate ;
Run Code Online (Sandbox Code Playgroud)
但是在NSISS Script中,如何运行我的exe并且还必须为相关的exe提供命令行参数?
我需要为Windows创建一个安装程序,它应该能够安装特定版本的Python解释器(2.7)以及一组依赖项,如ipython,numpy,pandas等.
基本上,这与Active State为其Active Python发行版所做的一样:一个包括解释器+ deps的捆绑包.
不是Windows用户我不知道从哪里开始这个可能除了考虑NSIS(可能有任何帮助吗?).