标签: msiexec

无提示安装MSI包

如果尚未安装软件包,我需要安装MSI软件包.我还需要安静地安装它.该软件包提示用户:

  • 安装位置(C:\ Program Files\Foobar)
  • 安装类型:最小和完整(最小)

我需要使用命令行参数或其他一些方法覆盖这两个参数.那么我该如何解决这两个问题呢.我将使用VBScript进行脚本编写.

windows-installer msiexec

77
推荐指数
2
解决办法
25万
查看次数

在不使用msiexec的情况下从命令行卸载MSI文件

msiexec是安装MSI程序的命令提示符软件.但我发现只需在命令行输入MSI文件的名称,就可以从命令行安装MSI文件.

但是为了卸载MSI文件,你似乎必须调用该msiexec程序并给它一个/x/uninstall.

如何在不使用msiexec例程的情况下从命令行卸载MSI ?

.net installation command-line windows-installer msiexec

54
推荐指数
3
解决办法
25万
查看次数

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

TL; DR:为什么我需要在这个条件组件中使用 <CreateFolder/>元素才能使其工作?

我正在为一个内部应用程序组装一个简单的基于WiX的安装程序.此安装程序需要部署标准配置文件(普通.NET .config文件),然后使用msiexec在命令行上传递的属性对其进行自定义.

其中一个自定义是仅在已定义RUNTIME属性时才创建特定的应用程序设置.这是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>
Run Code Online (Sandbox Code Playgroud)

这正如我想要的那样 - 如果在命令行上指定了RUNTIME,则会msiexec创建新元素; 如果没有,没有任何反应.

为什么我必须<CreateFolder/>在此组件中使用空?

当我试图让这个工作时,我找到了" Wix条件声明 ",它显示了一个工作组件,但没有解释为什么<CreateFolder/>是必要的.

删除<CreateFolder/>给我这个错误:

ICE18:组件的KeyPath:'C.Rbnz.Fsis.CollectionPeriodService.exe.config.runtime'是目录:'INSTALLDIR'.目录/组件对必须在CreateFolders表中列出.

一旦你知道这意味着什么,我相信,这是非常有用的.

windows-installer wix wix-extension msiexec

44
推荐指数
2
解决办法
2万
查看次数

创建MSI日志文件

我一直在尝试使用以下命令为安装程序创建问题的日志文件:

msiexec /i "installer.msi" /l*v "log.log"
msiexec /i "installer.msi" /l*v
msiexec /l*v /i "installer.msi"
msiexec /l*v "log.log" /i "installer.msi"
Run Code Online (Sandbox Code Playgroud)

和命令的其他几个变体,但它总是弹出窗口,说明哪些命令行参数对msiexec有效.使msi文件创建日志的正确方法是什么?我有Windows安装程序4.5.

logging windows-installer msiexec

43
推荐指数
2
解决办法
6万
查看次数

在特定目录中使用msiexec安装msi

我想在特定目录中安装带有msiexec的msi.我正在使用:

msiexec /i "msi path" INSTALLDIR="C:\myfolder" /qb
Run Code Online (Sandbox Code Playgroud)

它不能与"INSTALLDIR"一起使用,因为msi是在默认路径中安装而不是在我的特定路径中.

install path msiexec

40
推荐指数
5
解决办法
11万
查看次数

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

我的机器上安装了一个应用程序.我也有它的源代码,但不知何故,此应用程序的ProductCode和UpgradeCode已更改.

现在我想获得这个已安装应用程序的UpgradeCode和ProductCode.我觉得必须有一些工具.

谁能告诉我如何获得已安装应用程序的UpgradeCode和ProductCode?

installer automation windows-installer wix msiexec

37
推荐指数
5
解决办法
14万
查看次数

如何制作一个简单包装EXE文件的MSI

经过太多的实验,我得出结论,Windows Installer简直就是糟糕的技术.但客户需要MSI文件.

那么,我如何创建一个MSI文件,将EXE文件提取到临时目录并使用与传递给EXE文件相同或相似的选项运行它?

Msiexec(命令行选项)中解释了MSI的选项(MSI的低级"运行"是msiexec选项package.msi).

编辑:mjmarsh的WiX解决方案看起来很有效.我还没有机会尝试它(关键时刻).如果它有效,我会接受它.

编辑:它不起作用.遗失的部分:有人/无人看管似乎没有.

无论如何,唯一能完成这项工作的是自定义动作来杀死它的父进程!

编辑:所以有人发布了一个进一步的答案包装整个事情作为安装后的自定义操作.理论上可行,但由于可能需要重新启动(感谢MS for .NET 4有时需要重新启动),我们必须做进一步的hackery.所以从优势矩阵:

Transparency: No. One big custom action.
Customizability: No.
Standardization: No. 
Management and reporting: No. Appears to work but will not.
Security: No benefit.
Validation: No. The hackery required to survive reboot makes this sure to not work.
Resiliency: Completely defeated.
Rollback: No. Rollback didn't work when we were using MSI anyway.
Patching & Updates: No. We have a local solution anyway.
Logging: No. Appears to work …
Run Code Online (Sandbox Code Playgroud)

installer windows-installer msiexec

33
推荐指数
3
解决办法
9万
查看次数

从PowerShell运行MsiExec并获取返回代码

使用BAT/CMD脚本我可以简单地使用"msiexec /i <whatever.msi> /quiet /norestart"然后检查%errorlevel%结果.

VBScript使用Wscript.Shell对象Run()的方法,我能得到这样的结果:

"result = oShell.Run("msiexec /i ...", 1, True)"
Run Code Online (Sandbox Code Playgroud)

如何使用PowerShell执行此操作?

powershell return-value exit-code msiexec

28
推荐指数
2
解决办法
6万
查看次数

如何使用没有.msi文件的产品ID guid与msiexec一起卸载

我正在尝试自动卸载使用WiX创建的软件包,以便更改已安装的软件堆栈和配置,而无需重新配置整个操作系统.最终我将使用powershell脚本来执行此操作,但目前我似乎无法使用cmd以交互方式卸载我的测试包.

如果我跑:

msiexec /x '{A4BFF20C-A21E-4720-88E5-79D5A5AEB2E8}'

msiexec /x A4BFF20C-A21E-4720-88E5-79D5A5AEB2E8

我明白了:

"无法打开安装包.验证包是否存在以及您是否可以访问它,或联系应用程序供应商以验证这是否是有效的Windows Installer程序包."

如果我跑: msiexec /x {A4BFF20C-A21E-4720-88E5-79D5A5AEB2E8}

我明白了:

"此操作仅对当前安装的产品有效"

我查看了Windows安装程序指南,WiX文档,msiexec文档,并使用orca自己查看.msi,但我还没有找到任何可以清楚地了解卸载处理方式的内容.是否需要.msi文件,如果没有,那么为什么Windows安装程序在给出GUID时似乎认为它是?

.msi安装程序的WiX代码是:

<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='htp://schemas.microsoft.com/wix/2006/wi' >

  <!--DO NOT COPY / PASTE THE PRODUCT ID GUID BELOW TO YOUR OWN WIX SOURCE -->

  <Product Id='A4BFF20C-A21E-4720-88E5-79D5A5AEB2E8' Language='2057' 
           Manufacturer='COMPANYNAME IT-Operations' 
           Name='COMPANYNAMEServerListener' Version='1.0.0' 
           UpgradeCode='PUT-GUID-HERE'>

   <Package Id='*' Manufacturer='COMPANYNAME IT-Operations' Compressed='yes' />
   <Media Id='1' Cabinet='COMPANYNAMEServerListener.cab' EmbedCab='yes' />

    <Directory Id='TARGETDIR' Name='SourceDir'>
      <Directory Id='ProgramFilesFolder' Name='PFiles'>
      <Directory Id='COMPANYNAME' Name='COMPANYNAME'>
        <Directory Id='INSTALLDIR' Name='COMPANYNAMEServerListener'>
        <Component Id='MainExecutable' Guid='*' > …
Run Code Online (Sandbox Code Playgroud)

windows-installer wix uninstall msiexec

26
推荐指数
4
解决办法
14万
查看次数

使用msiexec/a启动管理安装的目的是什么?

Windows Installer技术支持管理安装.启动管理安装的命令行是:' msiexec/a setup.msi '.我想了解这种安装的目的以及它们在哪些情况下有用?

installer windows-installer wix msiexec

22
推荐指数
2
解决办法
3万
查看次数