加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

msbuild – 什么可能导致MSIExec错误1619’无法打开此安装包’

发布时间:2020-12-14 02:53:59 所属栏目:Windows 来源:网络整理
导读:我正在尝试从一包示例程序中自动执行往返安装和卸载一组MSI文件(由WiX生成).出于某种原因,非常乐意在双击时安装的.MSI文件会生成: This installation package could not be opened. Verify that the package exists and that you can access it,or contact
我正在尝试从一包示例程序中自动执行往返安装和卸载一组MSI文件(由WiX生成).出于某种原因,非常乐意在双击时安装的.MSI文件会生成:

This installation package could not be opened. Verify that the package exists and that you can access it,or contact the application vendor to verify that this is a valid Windows Installer package.

当我以下列方式使用MSIEXEC调用它时:

<ItemGroup>
  <_SampleMsi Include="$(_ArtifactsPathAcceptanceSamples)***.msi" />
</ItemGroup>
<Exec Command="$(WixDir)smoke &quot;%(_SampleMsi.Identity)&quot;"/>
<!--Guarantee precondition even if cleanup didn't work-->
<Exec Command="msiexec -passive -norestart -x &quot;%(_SampleMsi.Identity)&quot;" IgnoreExitCode="true"  />
<Exec Command="msiexec -norestart -i &quot;%(_SampleMsi.Identity)&quot;"  />
<!--Uninstall of every sample should also always work-->
<Exec Command="msiexec -passive -norestart -x &quot;%(_SampleMsi.Identity)&quot;" />

当我尝试根据产品ID GUID卸载时,也会出现同样的问题: –

msiexec -passive -norestart -x FC7445BB-7E1D-4E36-A42A-CFA56263E453

是什么赋予了?

解决方法

>不要从字面上理解消息的文本.关于你应该得出的结论是,misexec将你的命令的某些部分视为文件名,并且它没有加载并处理它的满意度.是否因为路径太长,权限被拒绝,或者任何其他条件仅受您的想象限制(大多数知识库文章似乎与安装程序缓存问题有关,这通常是基于GUID的语法或修补/升级选项)
>你错过了GUID的大括号,傻瓜.我的意思是你确实知道GUID上有大括号即使msiexec /?不告诉你或告诉你?!

即你需要用{FC7445BB-7E1D-4E36-A42A-CFA56263E453}替换FC7445BB-7E1D-4E36-A42A-CFA56263E453

(我已经停止信任/读取输出,并且正在考虑将GUID解析为msiexec不满意的缓存MSI的可能性,因为它似乎对安装语法不满意,这就是所有知识库文章在这个空间里倾向于谈论.)
>您的路径包含相对跳转,尽管净长度<160个字符,但总长度> 160个字符,因此底层文件API会窒息.人们喜欢编写误导性的通用错误消息. 您可以通过在使用的每个批处理表达式中使用FullPath替换上面的Identity来修复它. 另一种解决方法是use a WorkingDirectory with the Exec of msiexec

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读