- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在更新用 InstallShield 编写的安装程序,以执行应用程序的主要升级,并通过自定义操作调用 InstallScript 函数来备份和恢复应用程序目录中的某些文件。我有使用硬编码的先前安装目录的脚本,但需要找到安装应用程序的实际位置。
我可以使用以下方法获取当前安装的位置:
MsiGetProductInfo(PRODUCT_GUID, INSTALLPROPERTY_INSTALLLOCATION, savedInstallDir, bufferSize);
但是如果我将 PRODUCT_GUID 更改为先前安装的产品代码的硬编码值,那么我会在savedInstallDir 中得到一个空字符串:
MsiGetProductInfo("{my-previous-product-code}", INSTALLPROPERTY_INSTALLLOCATION, savedInstallDir, bufferSize);
最佳答案
您确定已为安装的旧版本保留安装位置吗?当您从 VBScript 尝试时,您是否得到任何信息(当然,使用您自己的产品 GUID 进行更新):
Dim installer : Set installer = CreateObject("WindowsInstaller.Installer")
MsgBox installer.ProductInfo("{9B061D60-4E2C-4987-BFFD-423E3D477660}","InstallLocation")
我检查了所有已安装的软件包,只有大约十几个(在几百个软件包中)保留了这条路径。
Script to check all installed packages .
"InstallLocation"
根据位置:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\PACKEDGUIDHERE\InstallProperties
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{REGULARGUIDHERE}
关于windows-installer - 如何在重大升级期间在 InstallScript 中找到应用程序的先前安装位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66496308/
我正在查看一些 InstallScript 代码。 对于整数,我习惯于将 % 运算符取模。我对字符串不熟悉。 if (szSomeString % szSomeOtherString) then
看起来有一个内置函数,VerCompare,但它需要包含所有四个组件的字符串,例如1.2.3.4。我没有尝试在 InstallScript 中进行字符串操作,希望有人已经有了代码来获取版本字符串并根据
如何在安装过程中在 installscript 中执行以下命令? netsh.exe advfirewall firewall show rule name="PowerSI (Release ASI
我正在更新用 InstallShield 编写的安装程序,以执行应用程序的主要升级,并通过自定义操作调用 InstallScript 函数来备份和恢复应用程序目录中的某些文件。我有使用硬编码的先前安装
我有一个 InstallShield 2009 'InstallScript MSI' 项目,它显示了 2 个对话框,这些对话框在我的安装中是不需要的: Customer Information
你好 Stackoverflow 社区, 我在安装脚本自定义操作中调用 C++ DLL 时遇到问题。当我尝试使用参数调用我的 DLL 时出现问题。错误图像如下所示: 带参数调用DLL 值,参数,在DL
我需要从 InstallScript 中的 .NET DLL 调用函数。我该怎么做? 让我们从简单的 Hello World 开始。假设我创建了简单的类库 TestLibrary.dll using
我有一个 Installscript MSI 项目,我想在 Install Shield 中禁用全局字体注册。我该如何做到这一点? 我只有一些字体文件,我将它们复制到安装应用程序的硬盘上,但它在 HK
我有一个纯InstallScript项目,由于this issue而导致出现问题。 。通过添加一些在安装新文件之前删除特定目录的 InstallScript 暂时解决了这个问题,但这并不理想。然而,t
我可以在 InstallShield 2009 中使用 InstallScript 项目创建 64 位 setup.exe 文件吗?文档仅与 msi 项目有关。或者请告诉我使用 64 位注册表项的替代
我对 InstallShield 很陌生,并且继承了一个 InstallScript 项目。我基本上已经找到了解决方法并解决了大部分问题。但是,我希望在每次构建产品时在我们的构建服务器上自动构建这个项
我已经创建了一个要在 Installscript 中使用的 .NET dll。它主要安装证书、删除证书并检查证书是否已存在。这是我的 Exists 方法: [ComVisible(true)] pub
我正在使用 InstallShield 2013 Premium。我在 Visual Studio 2010 中创建了一个 C++ dll,以提供一些我无法单独使用 InstallScript 实现的
我是一名优秀的程序员,十分优秀!