标签: nsis

带有.NET 4.0的NSIS安装程序

是否存在从NSIS安装程序自动下载和安装.NET 4.0 Framework的标准/首选方法(如果计算机尚未安装)?

有几个例子可以在旧版本的框架上使用它,但看起来它们都不适用于4.0.在我自己一起破解某些东西之前,我想知道是否有人知道那里已有的东西.

感谢您的时间.

.net nsis .net-4.0

11
推荐指数
2
解决办法
4749
查看次数

如何使用NSIS请求管理员权限?

我对NSIS很新.我试图请求管理员权限以运行安装程序,因为它与注册表有点混淆.我对"RequestExecutionLevel"和"MULTIUSER_EXECUTIONLEVEL"的问题是,即使在上下文菜单中选择"以管理员身份运行",它们也绝对阻止任何非管理员用户打开安装程序.我已经尝试过使用RunAs DLL,但是我没有找到一个关于将什么放入传递给"RunAsW"函数的$ command变量的线程.

这是我的(非常黑客)代码:

     StrCpy $0 0
     StrCpy $1 ""
     System::Call 'RunAs::GetAdministrators(w r1, *i .r0) i .r2 ? u'
     System::Alloc 64
     Pop $4
     StrCpy $4 $2
     StrCpy $5 ""
     loop:
          IntCmp $0 0 endloop
          System::Call '*$4(w .r3)'
          StrCpy $5 "$5|$3"
    endloop:
    System::Free $4   ; we free the memory used by the array
    StrCpy $5 "$5" "" 1
    !insertmacro MUI_INSTALLOPTIONS_WRITE "Settings.ini" "Field 1" "ListItems" $5
     !insertmacro MUI_INSTALLOPTIONS_DISPLAY "Settings.ini"
     !insertmacro MUI_INSTALLOPTIONS_READ $1 "UserPass" "Field 1" "State"
     !insertmacro MUI_INSTALLOPTIONS_READ $2 "Settings.ini" "Field 2" …
Run Code Online (Sandbox Code Playgroud)

nsis administrator runas

11
推荐指数
1
解决办法
2万
查看次数

如何要求用户使用NSIS卸载以前的版本

我刚开始使用NSIS.
它工作得很好,但我发现文档有点非结构化.在使用NSIS安装新版本之前,如何要求用户卸载以前的版本?

NSIS(Nullsoft Scriptable Install System)是一个用于创建Windows安装程序的开源系统.

installer nsis uninstallation

10
推荐指数
2
解决办法
8414
查看次数

如何使用NSIS创建更新安装程序?

我目前有一个项目,其中包含我使用NSIS制作的安装程序,但我希望对只有更改过的文件的新版本进行更新,并显示更改日志.目标平台是windows.你有什么方法/建议吗?

installer windows-installer nsis

10
推荐指数
2
解决办法
2万
查看次数

NSIS - 如何在排除文件的同时递归复制?

我需要递归复制一个目录,但要在其中排除几个目录.

NSIS的文档说File命令采用/r/x参数,但我无法使它们正常工作.

包含我的.nsi脚本的目录结构是:

parent-dir
    dir-to-exclude-1
        setup.nsi
    dir-to-copy-1
    dir-to-copy-2
    dir-to-copy-3
    dir-to-exclude-2
Run Code Online (Sandbox Code Playgroud)

我尝试了以下内容,但它对我不起作用:

SetOutPath $INSTDIR
File /r "..\**" /x "..\dir-to-exclude-1\**" /x "..\dir-to-exclude-2\**"  
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

编辑: 我越来越近,所以现在我有:

File /r /x \dir-to-exclude-1\*.* /x \dir-to-exclude-2\*.*  ..\*
Run Code Online (Sandbox Code Playgroud)

现在它将编译并安装所有文件,但不排除我想要的目录.有关如何排除这些内容的任何指导?

installer nsis

10
推荐指数
1
解决办法
7135
查看次数

在NSIS做"RmDir/r $ INSTDIR"是否安全?

我在NSIS RmDir方法的文档中注意到了这个警告:

警告:在卸载程序中使用RMDir/r $ INSTDIR是不安全的.虽然不太可能,但用户可能会选择安装到Program Files文件夹,因此该命令将清除整个Program Files文件夹,包括与卸载程序无关的其他程序.

这让我感到害怕,因为直到现在我还没有考虑过这种可能性,而且我的脚本中有这么一条线.但是,当我测试是否会通过将我的程序安装到包含预先存在的文件的预先存在的位置然后RmDir /r /REBOOTOK $INSTDIR在其中运行我的卸载程序来实现这一点时,现有文件保持不受损害.

这是一个过时的警告吗?我正在使用NSIS v.2.66.

谢谢

installer nsis

10
推荐指数
1
解决办法
8478
查看次数

NSIS安装程序脚本中AppData的环境变量是什么?

我在NSIS中寻找AppData的环境变量.我需要在我的安装中将fils复制到AppData目录.

谢谢!

installation nsis appdata

10
推荐指数
2
解决办法
1万
查看次数

从注册表中获取Windows版本的可靠方法

我正在通过检查以下注册表项来检查安装程序(由NSIS制作)中的Windows版本:

HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" "CurrentVersion"
Run Code Online (Sandbox Code Playgroud)

根据这篇文章和MSDN的这个页面,Windows 10的当前版本号应该是10.0.

我刚刚安装了Windows 10 Pro Insider预览版,注册表中给出的版本号仍为6.3,而不是10.10.

在注册表中是否有另一种可靠的方法来检测Windows 10?

windows registry nsis version-detection windows-10

10
推荐指数
1
解决办法
5万
查看次数

7998:不推荐使用 ANSI 目标

如何解决“7998:不推荐使用 ANSI 目标”

当我添加Unicode True

我得到错误,

错误:数据已压缩或标题已更改后,无法更改目标字符集!
脚本错误 -- 第 58 行
-- 中止创建过程

nsis

10
推荐指数
1
解决办法
2581
查看次数

如何让NSIS从临时目录安装和执行文件?

我正在使用以下NSIS脚本:

Name "My app wrapper"
Outfile "MyAppSetup.exe"
InstallDir $TEMP\MyApp\Install
Function .onInit
SetSilent silent
FunctionEnd
Section ""
    SetOutPath $TEMP\MyApp\Install
    File installer.msi
    File setup.exe
    Exec setup.exe
SectionEnd
Run Code Online (Sandbox Code Playgroud)

目的是安装程序将这两个文件:installer.msi和setup.exe(它是一个安装prereq的引导程序然后调用installer.msi)包装到MyApp Setup.exe文件中.运行MyAppSetup.exe时,它应将installer.msi和setup.exe解压缩到$ Temp\MyApp\Install目录,并且应该从该目录运行setup.exe.

但是,当我从桌面运行MyAppSetup时,它会执行它在桌面上找到的setup.exe文件,我甚至都看不到C:\ Temp中的MyApp\Install目录.

要使此脚本将文件安装到正确的位置并执行正确的文件,我需要做什么?

nsis

9
推荐指数
2
解决办法
1万
查看次数