问题标签 [installshield-2012]

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 回答
4425 浏览

windows-installer - 安装程序未覆盖为客户端分支的旧 DLL

我有一个我一直在为我们公司维护的 InstallShield 2012 Basic MSI 项目。我不是一个训练有素的 InstallShield 开发人员(只是 [当时] 图腾柱上最低的),但我在这几个月里学到了足够多的东西来让每个版本都能顺利运行。

最近,我们的一位客户坚持要我们修复旧版本产品中的错误,我们已经在最新版本中修复了该错误。我们通常不创建补丁,因为完整的安装程序兼作更新程序,但在这种情况下,我们遵守了,在他们所在的版本上创建了一个分支,并向他们发送了一个更新补丁。该补丁中仅包含一个文件,并且它与要替换的文件具有相同的版本。一切都好。

今天,该客户希望升级到我们的最新版本。实际上,我们正在将他们的分支合并回主线,并且由于他们的分支没有额外的组件或特定于客户端的代码,我认为我们可以简单地给他们我们的常规安装程序并让它覆盖所有内容。不是这样...

当我复制他们的分支安装并尝试更新文件时,安装程​​序成功运行并替换了除分支 dll 之外的所有内容。修补“omus”、“amus”、强制覆盖等不会改变任何事情。事先删除文件没有任何作用。无论我尝试什么,分支的 dll 仍然存在,日志看起来像这样(更改名称以保护有罪者,版本和 guid 保持不变):

正确更新的 DLL:

不更新的分支 DLL:

这有点超出我的深度。据我所知,它正在尝试修补分支的 DLL,但不能这样做,并且出于某种原因将文件扔到临时目录中(我找不到有关“智能补丁”究竟是什么意思的详细信息)。我已经看到应用到错误版本的补丁会发生这种情况,但这不是补丁!这是一个使用 REINSTALLMODE=v(oa)mus 和 REINSTALL=ALL 运行的常规安装程序。它应该只看到旧版本,看到它嵌入了新版本,然后将旧版本吹走。

(一时兴起,我尝试手动更新 DLL,而不是使用我们为客户端提供的更新程序。一切都正确更新,因此文件本身不会阻塞)

我的直接目标是让这个客户端重新同步,最好不用任何卸载并使用一个统一的安装程序,而不是为他们创建一个特殊的更新程序。由于文件已经在野外,如果这不可行,我可以忍受一个特殊情况。我未来的目标是让它像我想象的那样自然地工作——文件是旧版本,文件被替换,其他都不重要。

我想我已经提供了所有相关的信息,但如果没有,我可以提供更多信息。我今天大部分时间都在看这个,我根本找不到任何与这种情况类似的材料。

0 投票
1 回答
1528 浏览

installscript - SYSINFO.NWinMajor 为 Windows 7 提供了错误的值

我正在使用 InstallShield 2012 创建安装程序,并且正在使用 SYSINFO 主要和次要值检查操作系统。SYSINFO.nWinMajor 给出了正确的值,但 SYSINFO.nWinMinor 给出了 Windows 7 的 0。它应该是 1。

有人知道上面的解决方案吗?

0 投票
1 回答
95 浏览

windows-installer - 用户是否卸载旧版本产品的选项

我正在使用 InstallShield 12 创建安装程序,并希望为用户提供选项,例如用户是否要卸载或保留以前的版本并可以安装新版本的复选框。

有谁知道我怎么能实现上述目标?

我在对话框上添加了一个复选框并添加了一个属性,如果用户选择它,则卸载以前的版本,否则继续使用新版本而不卸载以前的版本。

0 投票
1 回答
447 浏览

c# - InstallShield 2012 与数据库的使用

我在 VS2012 中创建了一个应用程序,它使用数据库来存储和检索数据,我想为此应用程序创建一个安装文件,目前我使用 InstallShield LE 2012。

我试图用它来部署应用程序,但是当我将它安装在另一台计算机上时,由于数据库,它会抛出一个异常。

0 投票
1 回答
993 浏览

logging - 使用 installshield 2012 从安装程序生成日志文件 - 日志记录

我正在使用基本的 MSI 项目来准备 setup.exe。它在我的许多客户端机器上运行良好,并在少数 PC 上造成严重问题。现在我想添加一个日志作为 setup.exe 的一部分。

要求是成功或失败安装我想生成一个日志文件以了解幕后究竟发生了什么。这里还包括一些 VBScripting。

我有一个命令行参数。

但我想在单击 setup.exe 文件本身时生成它。而且文件名也不应该被硬编码。

任何线索都可能有很大帮助。我尝试使用 installshield 项目 --> 构建 --> 设置菜单。但无法取得任何突破。

提前致谢。

问候, 帕万

0 投票
2 回答
1027 浏览

visual-studio-2010 - 如何在不打开临时文件夹的情况下安装安装屏蔽 exe 文件

我正在使用install Shield spring 2012为 Windows 应用程序创建安装 exe 文件。为此,我添加了先决条件,一切顺利,安装时如果我选择自定义功能,则应运行先决条件,一切顺利。但是,当它满足运行先决条件时,它打开 Temp 文件夹并显示所有先决条件文件,似乎没有对我好。

请指导我如何在不打开任何临时文件夹的情况下安装安装盾牌。

0 投票
0 回答
1223 浏览

visual-studio - 通过 Visual Studio 2012 签署 InstallShield 2012 LE 安装程序

我正在尝试从 Visual Studio 2012 的 InstallShield 2012LE 中签署我的安装包。我有一个来自 Symantec (VeriSign) 的 MS Authenticode 证书。我看到了两个问题。

首先,如果我选择签署输出文件 - > Setup.exe 和 Windows 安装程序包(或只是 Windows 安装程序包)Visual Studio 崩溃。事件日志显示两个错误

错误模块名称:WINTRUST.dll,版本:6.2.9200.16420,时间戳:0x505a9691 异常代码:0xc0000005

此外,如果我将“使用软件识别标签”设置为“是”,那么在尝试构建安装程序包时会出现以下错误。

有没有人遇到过这些问题并知道解决方法?它工作正常是我关闭软件识别标签并只签署 Setup.exe 但我还需要上面的选项。该证书还可以毫无问题地签署我所有的 DLL 和 EXE。

0 投票
1 回答
6961 浏览

installshield - InstallShield 安装到 SysWOW64 而不是 System32


我正在创建一个 InstallShield 2012 Spring 项目,我需要将一些 jpg 复制到 System32 子文件夹中。
在应用程序数据/文件和文件夹中,我将其放入 [WindowsFolder]/System32/akrmf 并在安装时复制到 Windows 7 上
的 SysWOW64/akrmf 安装项目不包含任何 exe 或 dll,仅包含文本文件和图像。
我也尝试使用 [SystemFolder] 并复制到 SysWOW64 中。

有没有办法强制安装到 System32/akrmf 文件夹中?

谢谢

0 投票
2 回答
442 浏览

installshield - InstallShield 2012 从临时 asp.net 文件夹部署 dll

我的解决方案中有一个 InstallShield Spring 2012 项目。我在我的解决方案中添加了来自 Windows 服务项目的项目输出。此 Windows 服务项目引用了也在解决方案中的库项目。同一解决方案中的 ASP.Net MVC Web 项目引用了同一库项目。

现在,当从生成的 setup.exe 运行安装时,它运行良好,没有任何问题。它安装到预期的目标文件夹,我可以看到 Windows 服务的 exe 以及 libary 项目的 dll。

除了:图书馆项目的日期时间戳不是最新版本 - 它大约有一个月大!我拔出头发试图弄清楚它是从哪里得到这个旧版本的 dll 的。我最终发现它在 Temporary ASP.Net 文件夹中。我立即删除了该文件夹的内容并再次构建了安装项目。

这次奏效了。但可以肯定的是,在对库项目进行更多更改并重新构建安装程序 exe 后,部署的 exe 仍然是它从 Temporary ASP.Net 文件夹中获取的非最新版本。

为什么它会这样做?我错过了某个地方的设置吗?

0 投票
1 回答
2447 浏览

installshield-2012 - 标记为密钥文件的文件在使用 installshield 时未卸载

我正在使用 installshield2012 专业版创建 msie。我正在将我的项目主要输出之一添加到 msie,其中的组件被标记为密钥文件。如果我不将其标记为密钥文件,我的项目中的自定义安装程序文件不会被调用这对我来说很麻烦,但是将其标记为密钥文件会在卸载应用程序后保留卸载文件。有什么方法可以删除密钥文件??(永久和共享属性设置为NO)