我正在尝试使用升级代码检索已安装的msi的产品版本。我尝试使用MsiGetProductInfoapi,但它没有返回结果。我在HKEY_LOCAL_MACHINE\SOFTWARE\MSFT\Windows\CurrentVersion\Uninstall下找不到应用程序。但我确实在Installer\Products下的注册表中的其他地方找到了我的应用程序。我知道bben在这里问过类似的问题:GetProductCodeofinstalledMsi但是有人有更好的方法吗。谢谢 最佳答案 我刚才遇到了几乎相同的问题。如果您有升级代码
如何捕获Windows安装程序的默认错误消息?它看起来像静音模式,没有显示任何消息。例如,当另一个msi正在进行时,安装程序将显示错误代码为1500的错误消息:“另一个安装正在进行中。您必须完成该安装才能继续安装。”,我不想在这种情况下显示它,只是退出安装程序。请帮助我! 最佳答案 “另一个安装正在进行中”错误由WindowsInstaller自动显示。这是一个内部错误,它不受您的包管理。所以你无法控制它。大多数安装错误也是如此。您无法以自定义方式捕获或处理它们。您能做的最好的事情就是尽量避免它们,例如在安装过程中不要启动另一个
假设您有一个MSI试图添加或替换文件Foo.bar,但该操作失败了。如果Foo.bar在MSI的文件表中被标记为重要(使用msidbFileAttributesVital),则安装将回滚。如果文件不重要,则会提示用户并允许用户决定是否应忽略错误或是否应回滚安装。如果操作失败并且安装程序以静默模式(/qn)运行怎么办?无法提示用户。看起来(从我的MSI日志来看)安装回滚了,即使该文件并不重要。在这种情况下,有什么方法可以进行静默安装吗? 最佳答案 据我所知,无论您使用什么标志和设置,如果遇到错误,静默安装总是会回滚。这可以防止安装损坏
我想在开始菜单文件夹中找到快捷方式的目标路径,我知道应该使用fromshelllinkcomponentobjectmodel,但在我对一些快捷方式的测试中,它显示:"windows\installer\{guid}\x.exe"不显示它的程序文件文件夹,并且对于其他快捷方式工作正常,我怎样才能找到这些产品的目标路径。这是我使用的函数:HRESULTTargetShortcut::ResolveIt(HWNDhwnd,LPCTSTRlpszLinkFile,LPTSTRlpszPath,intiPathBufferSize){HRESULThres;if(lpszPath==NULL)
我有一个MSI,是我在VisualStudio2008中使用WindowsInstaller项目创建的。它安装使用VB6构建的COMdll,并将它们打包到构建服务器上。我们使用管理员帐户将其安装在多台服务器上。当其他管理员登录到服务器并启动程序包中的程序时,我们会看到一个对话框在屏幕上保留几分钟。它说“Windows正在配置我们的应用程序,请稍候”。我运行SysInternalsProcMon以查看它在做什么,并且msiexec.exe正在访问安装中(dll、exe、数据)中的每个文件。正在做什么以及如何停止这种行为?我们的一些帐户是非交互式的,这会导致问题,因为我们在作为服务运行时看
我已经使用DockerforWindowsInstallerv1.6.0在我的Windows笔记本电脑上安装了Docker。当我第一次运行start.sh脚本时,它会初始化并启动VM,但随后脚本给出错误“line36:cd:HOMEnotset”并退出:C:\ProgramFiles\Boot2DockerforWindows>start.shinitializing...starting...WaitingforVMandDockerdaemontostart...............................ooooooooStarted.WritingC:\Users\
我需要使用MSI创建安装程序,其目的是根据用户的区域(从环境变量读取)调用正确的安装程序。也就是说,这个安装程序应该有3个文件(它们本身就是安装程序),一个用于美国,一个用于欧洲,一个用于亚洲。现在的重点是这个主安装程序永远不会被安装,但它所做的是调用正确的安装程序(亚洲、欧洲或美国),所以它的安装程序最终会被安装。这个可以吗?任何解决方法都将非常受欢迎。 最佳答案 它称为自定义EXEBootstrap。这是一个简单的EXE应用程序,可确定机器环境并启动适当的安装程序。您可以选择将所有安装程序打包到其中并在运行时提取它们。您可以自己
当我启动应用程序时,以前安装的程序中的Windows安装程序不断弹出。该程序仍然存在于服务器中并且运行良好。安装程序弹出窗口在单击“取消”后最终会消失。我对解决这个问题不感兴趣,我只是想知道Windows安装程序如何决定安装什么?我的意思是说,机制是什么?如何以及由谁触发Windows安装程序?感谢您的回复! 最佳答案 这是操作系统自动触发的self修复机制。除了上述列举的原因外,如果出现以下情况,也可能会触发它:已按广告安装/首次使用时安装/需要时安装的功能在组件、功能或产品之间不恰本地共享文件,这可能导致资源在产品仍在使用时被卸
我正在编写我的第一个批处理文件,因为我以前从未使用过Windows命令行,所以我遇到了一些问题。这是我的场景。我在几个图像上使用这个批处理文件来安装一些东西。我希望批处理文件检查安装程序应该位于的文件夹,如果不存在,我希望批处理文件在计算机中搜索安装程序。之后,我希望它运行所述安装程序。这是我所拥有的:ECHO.ECHOStartingFooinstallationIFEXISTInstall\Installer.cmd(CALLInstall\Installer.cmd&GOTONextPart)ELSE(GOTOSearchInstaller):SearchInstallerSET
我在Laravel中制作了一个专门在Windows上运行的网络应用程序,并将单独部署在最终用户的机器上,我想知道我应该从哪里开始制作一个安装程序:下载并配置Laragon将我的应用转移到相关地方初始化mysql运行工匠命令。我考虑过使用像wix这样的东西,但看起来它的学习曲线非常陡峭。 最佳答案 Laragon非常便携,您只需将其压缩并发送给您的客户。让我解释一下:1.YouinstalledLaragoninyourmachineC:\laragon2.YoucreatedaLaravelappname:awesomeapp.Th