标签: msiexec

MSIEXEC qn和quiet之间有什么区别

我想要静默安装MSI文件.

/ qn/ quiet作为msiexec.exe的参数有什么区别?

installer windows-installer msiexec

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

为什么MSI需要原始.msi文件才能继续卸载?

正如大多数人可能注意到的那样,当卸载MSI软件包时,Windows将要求提供原始.msi文件.这是为什么?

我只能看到它的缺点:

  • 不适应网络变化.
  • 不适应本地磁盘更改.
  • 用户意外.
  • 通常要求用户离开他们的办公桌并开始讨伐以获得正确的CD.
  • 有点证明装置不是独立的.
  • 促进使用msizap等不安全工具.
  • 这反过来促进了"下一次我只会使用zip文件"的心态.

有人可以对此有所了解吗?

installer windows-installer uninstall msiexec

13
推荐指数
1
解决办法
1万
查看次数

MSI安装失败,因为"已安装此产品的另一个版本"

我们使用MSIEXEC使用以下命令行选项安装应用程序(MSI):

MsiExec.exe /x{code} /qn /liwearucmopvx+ C:\Log\UnInstall.tra
MsiExec.exe /iC:\Source\App.msi /qn TARGETDIR=C:\Install ALLUSERS=1 /liwearucmopvx+ %C:\Log\Install.tra
Run Code Online (Sandbox Code Playgroud)

大多数情况下这是有效的,但有时卸载失败(不确定为什么,查看错误).无论如何,当发生这种情况时,我在重新安装期间遇到以下错误:

Another version of this product is already installed.  Installation of this version cannot continue.  To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel
Run Code Online (Sandbox Code Playgroud)

有没有办法绕过这个?这意味着确保我们始终重新安装(如果存在,我们可以简单地自动将其吹走?)

installer windows-installer msiexec

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

提取msi时出错2203

使用以下命令提取msi时出现2203错误.

msiexec/a"C:\ Test\Installer.msi"/ QB targetDIR ="C:\ Test\Eval"/ LV*"C:\ Test\INST_Logfile.log"

在回答时请考虑以下几点:

  • 登录用户和SYSTEM帐户对
    %TEMP%,C:\ Windows\Installer 具有完全访问权限.

  • msi未标记为ReadOnly.

  • 检查Windows安装程序服务,它运行正常.

  • 尝试取消注册并注册msiexec

           MSIEXEC /UNREGISTER
           MSIEXEC /REGSERVER
    
    Run Code Online (Sandbox Code Playgroud)
  • 重启系统

以下是日志中捕获的错误:

MSI (s) (88:A4) [14:09:27:551]: Executing op: DatabaseCopy(DatabasePath=C:\Test\Installer.msi,,CabinetStreams=cab1.cab,AdminDestFolder=C:\Test\,) MSI (s) (88:A4) [14:09:27:551]: Note: 1: 2203 2: C:\Test\Installer.msi 3: -2147287008 DEBUG: Error 2203: Database: C:\Test\Installer.msi. Cannot open database file. System error -2147287008 MSI (s) (88:A4) [14:09:34:634]: Product: Installer -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error …

installer windows-installer msiexec

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

使用动态实例名称安装MSI的多个实例

我们的产品有一个MSI安装程序(用WiX编写),基本上将一些文件复制到文件夹c:\ ourproduct中,并安装一个Windows服务"ourwindowsservice".

我们希望添加对该服务的多个实例的支持,并且应该可以彼此独立地安装/卸载它们.与SQL Server类似,每个实例都应该有一个名称,可以作为命令行参数传递给MSI.

示例:实例"A"=>将文件复制到"c:\ ourproductA",将服务安装为"ourwindowsserviceA"实例"B"=>将文件复制到"c:\ ourproductB",将服务安装为"ourwindowsserviceB"...

任何的想法?

实例转换似乎需要一组预定义和预先命名的实例.

谢谢

windows-installer wix msiexec

10
推荐指数
1
解决办法
5267
查看次数

如何从msi包中提取ProductCode?

如何从msi包中提取ProductCode?我想以后用它作为描述通过MSIEXEC卸载MSI 这里

windows-installer msiexec

10
推荐指数
1
解决办法
1万
查看次数

通过命令行/通过Jenkins"执行批处理命令"创建安装程序

我们使用Jenkins进行CI.

我有一个使用CMake 2.8.4和VS2010(NMake Makefiles)在Windows中构建的项目.一旦构建完成,我们手动压缩文物以给人们.如果可能的话,我想通过Jenkins创建一个安装包,而不是必须压缩所有内容.

有没有人知道可以完全使用命令行的安装程序,所以我可以将命令放在Jenkins的"执行批处理命令"窗口中?有没有人这样做过?您使用的安装程序创建者是什么?希望在免费/开源领域寻找一些东西.

windows installer msiexec jenkins

10
推荐指数
1
解决办法
1万
查看次数

在PowerShell中检索MSIEXEC退出代码

我需要MSIEXEC从PowerShell 运行命令行并检查安装是否成功.

如果我做:

msiexec.exe /qn /l*v e:/tmp/surfaceruntime.log  /i '\\nas\lui\tools\surfaceruntime2.msi'
Run Code Online (Sandbox Code Playgroud)

(指定的MSI不存在 - 用于测试目的)

我得到$LASTEXITCODE1分

OTOH,如果我这样做:

$parms=@("/qn", "/l*v", "e:/tmp/surfaceruntime.log";"/i";"\\nas\lui\tools\surfaceruntime2.msi") 

$run=[System.Diagnostics.Process]::Start("msiexec",$parms) 
$run.WaitForExit() 
$run.ExitCode 
Run Code Online (Sandbox Code Playgroud)

我得到1619(就像%ERRORLEVEL%我从命令行运行一样CMD).

怎么回事$LASTEXITCODE不对?

powershell msiexec

10
推荐指数
1
解决办法
6875
查看次数

如何比较两个(或更多)MSI文件的内容?

如何对两个(或更多)MSI文件进行 " 内容比较 " 并查看文件内部实际不同的内容 - 而不是进行无用的二进制比较?(这显然只告诉我我是否正在处理同一文件的副本).

一些相关和典型的问题场景:

  • 我们构建系统吐出MSI文件像疯了似的,有时我们需要弄清楚不同的MSI文件之间存在什么样的差异(读:事情发生了转变,现在我们是失败的部署).
  • 我们有来自不同位置的同一消息来源编译MSI文件,其中一些无法运行报告System.BadImageFormatException -我们如何调试什么的MSI文件的差异?(具体处理此错误的答案在这里:应用程序是否依赖于编译它的环境?).
  • MSI文件可以使用各种工具进行编译,但对于stackoverflow用户,这些文件可能最常使用WiXVisual Studio Installer Projects(免费工具包)创建.

这是一个Q/A风格的问题,主题是比较已编译的MSI文件以确定存在哪些真正的"内容差异".

windows-installer wix orca advanced-installer msiexec

10
推荐指数
1
解决办法
5179
查看次数

msiexec的命令行参数如果包含空格则在powershell上中断

我正在尝试使用包含空格的值在installshield安装程序中设置公共属性.在运行MSI安装程序时,我在PowerShell命令提示符下使用以下命令.由于该值包含空格,因此我使用双引号来传递值

msiexec -i "myinstaller.msi" MYDIRPATH="C:\new folder\data.txt"
Run Code Online (Sandbox Code Playgroud)

它打破了命令,因为参数值C:\new folder\data.txt在字符串中有一个空格,new folder并导致msiexec的错误提示下面,这表明传递给msiexec命令的参数有问题:

在此输入图像描述

如果我在Windows默认命令shell提示符上运行相同的命令,那么它就像一个魅力.

我试过的选项:

  1. 使用单引号代替双引号
  2. 根据答案在参数中的空格前使用后退(')字符.

powershell windows-installer installshield command-line-arguments msiexec

9
推荐指数
2
解决办法
1784
查看次数