问题标签 [installscript-msi]

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 投票
1 回答
2508 浏览

windows - 如何将文件安装到 Installshield Installscript-MSI 项目中的注册表项/值所指向的目录?

我安装中的一个文件需要复制到用户目标计算机上的注册表键/值对指向的位置。

现在,我有一种笨拙的解决方案,我将文件设置为复制到组件视图中的 [TempFolder],然后在我的 OnFirstUIBefore() 函数中获取一些自定义 InstallScript 代码,该代码从注册表中获取值,然后执行[TempFolder] 上的 MSIGetProperty,最后是 [TempFolder] 中的 CopyFile() 进入我们之前从注册表中获取的路径。

这可行,但有点麻烦。一位同事说他认为我应该能够对自定义属性名称(如 MY_RSRC_DIR)执行 MSISetProperty,然后以某种方式在“组件”窗格中使用该自定义属性将文件复制到正确的位置。

我可以在 OnBegin() 函数中执行 MSISetProperty,但是尝试将该属性插入到组件视图中是我还不能开始工作的事情。

有没有人这样做过,如果有,怎么做?

0 投票
1 回答
860 浏览

installation - 单元测试安装脚本

我有一些功能在我的InstallScript中有一些函数非常适合单元测试。我的项目是一个InstallScript MSI 项目。我找到了一篇关于如何使用自定义 ICE 对自定义操作进行单元测试的文章,但是我想要单元测试的代码不在自定义操作中,而是在 UI 序列中。

有没有办法对这种 InstallScript 代码进行单元测试?

0 投票
1 回答
1065 浏览

.net - VSDCA​​_Launch 在自定义操作脚本中的含义

我想在安装后使用 Visual Studio 设置和部署输出启动应用程序。我遵循 文章“在 Visual Studio 安装项目中安装后如何启动应用程序”。它有一个解决方案,使用自定义操作添加一个复选框并在安装后启动应用程序。但我仍然有一个问题,应用程序已经启动,工作目录与目标目录不同。因此它无法读取 XML 配置文件。我在自定义操作类型中阅读了有关自定义操作的更多信息,并认为我应该使用操作 34 或 35,但我仍然对如何使用感到困惑。

脚本中的原始插入动作语句为:sql = "INSERT INTO CustomAction( Action, Type, Source, Target) VALUES ('VSDCA​​_Launch', '210', '" + fileId + "', '')";

我知道 210 是 18 + 192 但不知道 VSDCA​​_Launch 是什么意思。如何使用目标目录启动应用程序。谢谢你。

编辑

我已更改为 226 = 34 + 192 并且工作正常。

sql = "插入CustomAction( Action, Type, Source, Target) 值 ('VSDCA​​_Launch', '226', 'TARGETDIR', '[TARGETDIR]\App.exe')";

0 投票
1 回答
807 浏览

installation - Microsoft Installer:可以在不更改版本号的情况下升级产品吗?

我们想使用流行的major.minor.update.build_number版本控制方案。我们的下一个产品更新将是 1.0.1 版。

我们的内部配置管理机制生成发布版本和每日版本,所有这些都自动打包为 MSI。开发人员和 QA 会定期下载构建版本并与他们一起更新测试平台,以验证错误修复等。

每个 CM 构建都会增加该build_number字段,因此构建版本可能看起来像这样

我们的问题是,因为我们的ProductVersion没有改变,微软的安装程序技术不会让我们在我们的测试台上运行这些 MSI 作为更新。我们必须完全卸载现有产品并重新安装所需的 MSI。

有没有办法创作我们的 MSI 以应用更新,而不管 ProductVersion 标记如何?

我们使用 InstallShield。是否有替代安装技术可以让我们做我们想做的事?

谢谢!

0 投票
1 回答
539 浏览

windows - Visual Studio 2010 Setup MSI 如何将内容文件的路径添加到注册表

是否有一种简单的方法可以将一个或多个内容文件路径添加到当前用户的制造商程序文件路径下的注册表中?我能够对可执行文件执行此操作,但不能对任何添加的内容文件执行此操作。

0 投票
2 回答
1896 浏览

c# - 使用 VisualStudio 2005 应用程序部署 MySQL 服务器

我有一个使用 MySQL 作为数据存储引擎的 Visual Studio 2005 项目 (C#),我想创建一个安装应用程序的 MSI 包,然后静默安装 MySQL。我一直在研究它,但我找不到太多信息。

我已经静默安装了 MySQL 包,并在 CMD 中使用这两个语句对其进行了配置

安装:

配置:

但现在我不知道怎么说 Visual Studio 在安装我的应用程序之前或之后这样做。我一直在用谷歌搜索它,但我找不到任何有用的帮助。

我希望你能指导我:)

编辑:我一直在使用自定义操作解决解决方案,我发现这篇文章使用自定义安装程序类来执行自定义操作。起初它看起来很好,但我遇到了一个问题,因为当我的 MSI 包尝试启动第二个 MSI 安装程序(MySQL)时,我收到代码 2869 的错误,上面写着“拒绝访问”。

我也一直在寻找这个问题,看起来当第一个 MSI 尝试运行第二个 MSI 时它没有应用正确的权限并且安装失败......

你知道我能做什么吗?或者我如何启动第二个 MSI 安装程序?具有完全权限(或至少与第一个安装程序相同)

这是我用来创建 Process 对象的代码。

0 投票
1 回答
296 浏览

visual-studio - MSI 将 TARGETDIR 写入文本文件

如何将 MSI 写入TARGETDIR文本文件?这样我的程序就可以引用那里写的路径。

0 投票
3 回答
3909 浏览

windows-installer - MSI 或安装屏蔽

我们需要为我们的应用程序创建一个安装程序。目前,我们正在使用 Visual Studio 2010 免费的 Install Shield LE。我们需要 Install Shield 的一些非免费功能,并且正在考虑升级到完整版本。

但是,在我们升级之前,我们想考虑其他选项。通过与办公室其他人的交谈,他们提到了 MSI。我是安装程序世界的新手,所以我很好奇你们中是否有人对 MSI 或 Install Shield 有意见。

安装程序要求:
1. 必须支持自定义操作
2. 必须支持对话框
3. 我们还需要在运行时从用户那里获取信息并将其放入配置文件中。不知道如何做到这一点。我认为 Install Shield 有安装脚本?
4.如果它支持多种语言,那将是一个巨大的好处

任何输入将不胜感激。

谢谢

0 投票
3 回答
1412 浏览

windows-installer - InstallShield 文件序列号

我正在将文件添加到现有的 InstallShield MSI 项目,构建 MSI,然后从中创建 MSP 以应用于现有安装。

问题是,当我将新文件添加到 MSI 项目时,序列号不会增量设置。我进入了直接编辑器,并编辑了序列号,使它们从旧的停止处开始,但是当我构建项目时,我输入的序列号被忽略了。如果这样的序号不同,会导致MSP安装不正确。

有没有办法修复被 InstallShield 覆盖的序列号?如果我不向项目添加任何新文件,则现有文件的序列号保持不变。就好像我正在添加的新文件正在“中间”安装。

有什么想法吗?

谢谢

0 投票
2 回答
1571 浏览

c# - msi 安装程序不提示用户升级

我有一个简单的 msi 安装程序 setup.exe(通过 VS2010 创建)。在第一次安装中一切正常,问题出在第二次安装中: 1. msi 设置是:a.RemovePreviousVersions 设置为 TRUE。2.我升级了安装版本(用于第二次安装)编号,然后当我询问是否要升级产品代码时按确定。

此时我重新编译了 msi 并双击 setup.exe。问题:我希望安装程序会检测到已经安装了以前的版本并询问我是否要删除\升级它。发生的情况是安装程序自动将已安装的产品升级到新版本而不询问任何内容......

有什么方法可以配置 msi 项目以使其提示“升级\删除”屏幕????

非常感谢..