如何让 NSIS 安装并执行临时目录中的文件?

2024-04-16

我正在使用以下 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

其目的是安装程序会将 installer.msi 和 setup.exe(这是安装先决条件然后调用 installer.msi 的引导程序)这两个文件打包到 MyApp Setup.exe 文件中。运行 MyAppSetup.exe 时,它​​应该将 installer.msi 和 setup.exe 提取到 $Temp\MyApp\Install 目录,并且应该从该目录运行 setup.exe。

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

我需要做什么才能让这个脚本将文件安装到正确的位置并执行正确的文件?


Section
InitPluginsDir
SetOutPath "$pluginsdir\MyApp\Install" ;It is better to put stuff in $pluginsdir, $temp is shared

File installer.msi
File setup.exe

ExecWait '"$pluginsdir\MyApp\Install\setup.exe"' ;You should always use full paths and proper quotes

SetOutPath $exedir ;Change current dir so $temp and $pluginsdir is not locked by our open handle
SectionEnd
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 NSIS 安装并执行临时目录中的文件? 的相关文章

  • NSIS脚本学习:判断版本并安装.NET Framework运行环境

    前言 目前开发的程序以基于 net的应用程序为主 程序开发好后 需要进行安装包的生成 及setup文件的生成 常见的是NSIS工具 之前一直用的单文件打包工具 不适合将运行环境加进去 因此开始使用更高版本的NSIS 3 06 关于判断 NE
  • 每个 Windows 操作系统的注册表中的 CurrentVersion 值

    我想知道CurrentVersion每个操作系统的值 HKLM SOFTWARE Microsoft Windows NT CurrentVersion 例如 我的机器上安装了 Windows 7 Professional 并且Curren
  • 使Windows刷新图标缓存

    我真的很喜欢 KDE SC 4 的氧气外观 我编写了一个程序将这些图标应用到 Windows 该程序是用 NSIS 编写的 目前几乎功能齐全 但是 我发现让 Windows 意识到图标更改的唯一方法是终止 explorer exe 删除图标
  • NSIS 获取产品版本

    我正在尝试使用 NSIS 2 49 获取 ProductVersion 有人有如何获取产品版本的示例吗 GetDllVersion C data Some exe R0 R1 the two values were read during
  • NSIS 系统 kernel32::LoadLibrary 不搜索 Outdir 或 Path

    我正在尝试在 NSIS 安装程序中加载并调用 C 库 DLL 的函数 当我尝试加载 DLL 时 发出错误 126 ERROR MOD NOT FOUND 这是我用来测试的最小安装程序脚本 OutFile Main exe ShowInstD
  • 选择后添加浏览安装目录“${PRODUCT_NAME}”后的 NSIS 目录页面

    我有一个带有目录页面的简单 NSIS 脚本 用户可以在其中选择要安装应用程序的目录 请参阅下面的示例 如果应用程序已安装 它将从注册表或 www 根目录或 program files publisher product name 中获取值
  • 在 IF ELSE 块中包含 InstallDir

    我尝试使用以下代码 The default installation directory InstallDir PROGRAMFILES PRODUCT NAME to include x64 nsh If RunningX64 The d
  • 是否可以从 Java 代码调用 Ant 或 NSIS 脚本?

    是否可以在运行时从 Java 代码以编程方式调用 Ant 或 NSIS 脚本 如果是这样 怎么办 You can从 Java 代码调用 ant 脚本 See 本文 http ant apache org manual running htm
  • 如何使用 NSIS 请求管理员权限?

    我对 NSIS 还很陌生 我试图请求管理员权限才能运行安装程序 因为它与注册表有点混乱 我对 RequestExecutionLevel 和 MULTIUSER EXECUTIONLEVEL 的问题是 它们都绝对阻止任何非管理员用户打开安装
  • NSIS反编译器

    任何熟悉 NSIS 反编译器的人 谷歌不是 谢谢 乙 如何访问 NSIS 安装程序脚本 好吧 这就是这篇文章的大主题 http netcologne dl sourceforge net project nsis NSIS 202 2 09
  • 如何在 NSIS 中获取命令输出?

    我想知道如何在 NSIS 中获取 execwait 命令的输出 例如 如果我运行tree 我将如何获得输出 这将是实际的树 您不能使用 ExecWait 来做到这一点 您必须使用以下插件之一 nsExec http nsis sourcef
  • NSIS 安装程序 - 显示不同的许可证

    我正在尝试修改现有的 NSIS 安装脚本 以允许根据用户是新用户还是现有用户向用户提供不同的许可证文件 我有预先存在的代码 可以检测 onInit 部分中的现有安装 然而 我在尝试使用 NSIS 提供的许可证屏幕时遇到了障碍 例如 Inse
  • Win32 安装程序:有没有办法为每个用户写入 HKU 启动?

    是否有一个 Windows 安装程序可以为每个用户添加启动项 例如
  • 以编程方式安装 Chrome 扩展程序

    我知道这个问题已经被问了很多 我读了所有这些 但找不到与我的问题相关的任何内容 所以再次询问 我做了一个简单的 chrome 扩展 还使用 chrome 将其打包为 crx 我想使用 nsis 或 C 安装程序以编程方式安装它 从这里得到一
  • 卸载程序不删除注册表

    Function Check32or64BitWindows If RunningX64 strcpy INSTDIR PROGRAMFILES64 APP FULL PATH SetRegView 64 Else SetRegView 3
  • NSIS 插件“nsScreenshot”在 Windows NT 6.x 中不起作用

    我添加了一个比原始插件晚3年发布的代码 但它仍然返回错误 代码很简单 恕我直言 但我仍然很可能错过某些方面 看这段代码 nsScreenshot NSIS Plugin c 2003 Leon Zandman email protected
  • 如何写入或读取 XML 配置文件 (.config)

    我必须在安装的后期部分编写一个配置文件 如果存在旧版本的产品 则必须从配置文件中读取 配置文件是 XML 配置文件 config 配置文件将有很多条目 例如
  • NSIS - 检查注册表项值是否存在

    我需要检查注册表值是否存在 我怎样才能做到这一点 我的第一个方法 ReadRegStr 0 HKLM SOFTWARE Microsoft Windows NT CurrentVersion Ports NUL IF 0 MESSAGEBO
  • NSIS - 在命令行安装期间打印提示

    我正在使用 NSIS 为 Windows 制作安装程序 并且有许多用户可以使用命令行指定的自定义安装选项 例如 installer exe IDPATH c Program Files Adobe Adobe InDesign CS5 S
  • msinfo32 无法在 Windows XP 下的 NSIS 中运行

    以下 NSIS 行由于某种原因拒绝在 Windows XP 下运行 立即返回 ExecWait PROGRAMFILES Common Files Microsoft Shared MSInfo msinfo32 report DESKTO

随机推荐

  • 在 WHERE 中使用 ROW_NUMBER() 别名[重复]

    这个问题在这里已经有答案了 在 Postgresql 9 1 中 我尝试使用 ROW NUMBER 别名字段过滤 WHERE 子句中的结果集 这个查询工作正常 SELECT inv client pk inv invoice pk inv
  • 监听来自UIWebView的所有请求

    我可以使用以下方法拦截来自 UIWebView 的初始加载请求 BOOL webView UIWebView webView shouldStartLoadWithRequest NSURLRequest request navigatio
  • 在 Javascript 中声明函数最有效的方法是什么?

    我一直了解到 要在 javascript 中声明函数 您应该执行以下操作 function myfunction fruit alert I like fruit 或类似的东西 var myfunction function fruit a
  • 如何获取子 ng-repeat 内父作用域数组/ng-repeat 的索引

    我正在建一张桌子 我有两张桌子ng repeat为了我的桌子 我的问题是 这是否有可能是ng repeat可以得到父级ng repeat的索引 例如 tbody tr td company the company index and pro
  • 为什么 Google 的 OpenID 实现的 ID 会发生变化?

    我正在尝试为 Web 应用程序实现 OpenId 登录 每当新用户通过 OpenId 登录时 我都会在系统上创建一个新用户 并在数据中存储他们的 openid URL 以便下次他们使用该用户登录时 我正在使用 Gmail OpenID 对此
  • 如何为armv6、armv7和i386编译静态库(fat)

    我知道这个问题已经被提出过好几次了 但我的目标与我在网上搜索到的内容略有不同 具体来说 我已经能够为 iPhone 构建静态库 但我能够构建的最终 fat 文件仅包含arm和i386架构 并且我不确定arm指的是 v6还是v7 我无法专门针
  • C++ 中谓词是什么? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 您能举一些例子或主题链接吗 谓词是一
  • Jquery中的onclick函数不起作用

    在product showcase js 文件的帮助下 我将内容加载到 HTML 中 然后使用以下类单击产品链接即内在我正在尝试组织一个单击事件如product description js所示 数据是从 json 文件中获取的 我能够将数
  • 将照片上传到 MVC 4 应用程序

    我正在尝试创建一个控制器来在我的 MVC4 应用程序中上传照片 但我不断收到此错误 输入不是有效的 Base 64 字符串 因为它包含非 Base 64 字符 两个以上的填充字符或填充字符中包含非空白字符 照片控制器 cs public c
  • 使用 php 客户端库 v3 将视频上传到 youtube

    我正在尝试使用客户端库 v3 将视频上传到 youtube v3 库是实验性的 没有太多文档 提供的示例不包括 youtube 我已经使用 oauth 2 0 正确验证了用户身份 当我拥有访问令牌时 我正在尝试使用此代码 if client
  • 如何根据给定名称查找一个类的所有子类?

    我需要一种获取从 Python 基类继承的所有类的工作方法 新式类 即从object 这是 Python 3 中的默认设置 subclasses 返回子类的方法 class Foo object pass class Bar Foo pas
  • Xcode 4模板,创建空组

    我正在尝试创建一个 xcode 4 模板 除了我无法创建空组之外 一切工作正常 我想要这个项目结构 项目名 楷模 控制器 景观 服务
  • 检查字典的任何值是否与条件匹配[重复]

    这个问题在这里已经有答案了 python程序员如何检查字典的任何值是否匹配条件 大于0就我而言 我正在寻找对性能影响最小的最 Pythonic 方式 我的字典 pairs word1 0 word2 0 word3 2000 word4 6
  • 在不改变目标类型的情况下以最高精度序列化浮点数

    我需要反序列化原始二进制数据 BinaryFormatter 然后序列化为 JSON 用于编辑 然后再次将其序列化回二进制 显然 我输在了浮动上 原始浮点值0xF9FF4FC1 大端 大致 12 9999933 四舍五入为0xF6FF4FC
  • 通过代码在LinearLayout中对齐Imageview

    问题很简单 我正在使用代码动态创建一个图像视图 ImageView btnSend new ImageView this 并将其添加到 LinearLayout 中 问题是我想保持右对齐 怎么做 提前致谢 尝试使用 LayoutParams
  • 使用每行的列索引向量提取矩阵元素

    我有一个MxN矩阵 我想要一个列向量v 使用向量s它告诉我对于矩阵中的每一行我将采用哪一列 这是一个例子 Matrix 4 13 93 20 42 31 18 94 64 02 7 44 24 91 15 11 20 43 38 31 21
  • 指数代码,我不理解代码行为

    这是指数计算的代码 var exponent function a n if n 0 return 1 else return a exponent a n 1 console log exponent 5 3 我不明白这一行 return
  • 预订表中仅允许工作时间

    PostgreSql 9 2 保留表定义为 CREATE EXTENSION btree gist CREATE TABLE schedule id serial primary key during tsrange not null EX
  • 如何根据选择条件将节点集存储在变量中

    我有以下 XML 结构
  • 如何让 NSIS 安装并执行临时目录中的文件?

    我正在使用以下 NSIS 脚本 Name My app wrapper Outfile MyAppSetup exe InstallDir TEMP MyApp Install Function onInit SetSilent silen