windows - MSI Installer fails with error: Assembly Install [GAC] at RemoveDirectoryAndChildren, line 393
问题描述
I created an installer using Wix toolset which worked fine, until I opened 2 instances of setup.exe. The installation fails to install an assembly into the GAC:
"Error 1935. An error occurred during the installation of an assembly 'MyAssembly,version="3.2.xxxx.xxxxx",culture="neutral",publicKeyToken="xxxxxxxxxxx",processorArchitecture="MSIL". Please refer to Help and Support for more information. HRESULT: 0x80131043. assembly interface: IAssemblyCacheItem, function: Commit, component: {xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx}
Assembly Install: Failing with hr=80070005 at RemoveDirectoryAndChildren, line 393".
I think an MSI Transaction remained open, locking up a directory with a corrupt ACL.
Rebooting fixed this problem once, however I ran "Setup.exe" with "Setup.exe /?" open at the same time.
So, which folder is locked up? It's not one from my application. Is it a temp folder created during the installation of a dll into the GAC?
解决方案
It turns out to be a confluence of errors (on my part):
- A transaction was open from a system change that had not been rebooted. The installer recovered once, but not twice.
- The build order was running the previously built msi.
- The actual error was a misconfigured Component attribute.
推荐阅读
- java - 在 karaf 中安装功能 camel-consul 时出错
- html - 将任意大小的图像居中对齐到父 div
- delphi - GetMem 和 AllocMem 有什么区别?
- facebook - 如何通过标签获取特定 instagram 帐户的媒体?
- amazon-web-services - Amazon Kinesis 流上的 Google Speech-to-text:io.grpc.StatusRuntimeException:CANCELLED:操作已取消
- vb.net - 从记事本中读取特定数据
- angular - 如何在 ionic 4 中选择离子按钮阵列?
- javascript - 如何在反应 js 中一次更新嵌套对象中所有键的值?
- javascript - 如何将滑块值动态读取到 JSXGraph 中的函数中?
- laravel - 使用 student_id 作为外键从费用表中获取提交的费用列表以及日期