Tag: msiexec

如何在Windows 7中查找已安装应用程序的UpgradeCode和ProductCode

我的机器上安装了一个应用程序。 我也有它的源代码,但不知怎的,这个应用程序的ProductCode和UpgradeCode被改变了。 现在我想获得这个安装的应用程序的UpgradeCode和ProductCode。 我觉得必须有一些工具。 任何人都可以让我知道如何获得安装的应用程序的UpgradeCode和ProductCode?

为什么我的WiX安装程序需要一个空的CreateFolder来有条件地更新一个Xml文件?

TL; DR :为什么在这个条件组件中需要一个空的 <CreateFolder/>元素才能使其工作? 我正在为一个内部应用程序组build一个简单的基于WiX的安装程序。 这个安装程序需要部署一个标准的configuration文件(一个普通的.NET .config文件),然后使用在命令行msiexec属性来定制它。 其中一种自定义是只有在定义了RUNTIME属性的情况下才创build特定的应用程序设置。 下面是这个WiX组件: <Component Id="C.Rbnz.Fsis.CollectionPeriodService.exe.config.runtime" Guid="*"> <Condition> <![CDATA[RUNTIME]]> </Condition> <CreateFolder/> <util:XmlFile Id="X.Runtime.1" Action="createElement" ElementPath="/configuration/appSettings" File="[#F.Rbnz.Fsis.CollectionPeriodService.exe.config]" Name="add" Sequence="2"/> <util:XmlFile Id="X.Runtime.2" File="[#F.Rbnz.Fsis.CollectionPeriodService.exe.config]" ElementPath="/configuration/appSettings/add[\[]not(@key)[\]]" Action="setValue" Name="key" Value="RunTime" Sequence="3"/> <util:XmlFile Id="X.Runtime.3" File="[#F.Rbnz.Fsis.CollectionPeriodService.exe.config]" ElementPath="/configuration/appSettings/add[\[]@key='RunTime'[\]]" Action="setValue" Name="value" Value="[RUNTIME]" Sequence="4"/> </Component> 这就像我想要的那样工作 – 如果在msiexec的命令行中指定了RUNTIME,则会创build新元素; 如果没有,没有任何反应。 为什么我必须在这个组件中有空的<CreateFolder/> ? 当我试图得到这个工作,我发现“ WIX条件声明 ”,它显示了一个工作组件,但没有解释为什么<CreateFolder/>是必要的。 删除<CreateFolder/>给我这个错误: ICE18:组件的键path:“C.Rbnz.Fsis.CollectionPeriodService.exe.config.runtime”是目录:“INSTALLDIR”。 目录/组件对必须列在CreateFolders表中。 这是,我相信,一旦你知道这意味着什么,相当丰富。

创build一个MSI日志文件

我一直在尝试使用以下命令为安装程序创build一个日志文件: msiexec /i "MxServeInstaller.msi" /l*v "log.log" msiexec /i "MxServeInstaller.msi" /l*v msiexec /l*v /i "MxServeInstaller.msi" msiexec /l*v "log.log" /i "MxServeInstaller.msi" 以及命令的其他几个变体,但是它总是popup一个窗口,说明哪些命令行参数对msiexec有效。 msi文件创build日志的正确方法是什么? 我有Windows安装程序4.5。

如何find已安装的MSI安装程序的产品GUID?

我需要find已安装的MSI文件的产品GUID ,以便执行修补,卸载和审计等维护。

不使用msiexec从命令行卸载MSI文件

msiexec是安装MSI程序的命令提示符软件。 但是我发现只要在命令行中inputMSI文件的名称,就可以从命令行安装MSI文件。 但为了卸载MSI文件,似乎你必须调用msiexec程序,并给它一个/x或/uninstall 。 如何在不使用msiexec例程的情况下从命令行卸载MSI?