我有一个控制台应用程序在 Visual Studio 2019 的 .NET Framework 4.7.1 上运行,带有 Microsoft Visual Studio 安装程序项目(MSI 安装程序)。
从packages.config迁移到PackageReference后,.msi
安装程序在收集所有安装程序输入并开始安装后返回以下错误。
安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码是 2727。
.msi
在迁移之前创建的安装程序可以正常工作。迁移后可执行文件和项目工作正常。问题仅出在安装程序上。.msi
从 VS 2019 项目和生成的文件安装时,可以重现该问题。
Windows 事件查看器和安装程序日志中有错误:
远程计算机上的事件查看器
Product: XXXXX -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2727. The arguments are: _0024F16DE39F4B7D9BF184AC802A7310, ,
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="MsiInstaller" />
<EventID Qualifiers="0">10005</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2021-10-21T19:14:41.779642800Z" />
<EventRecordID>18270804</EventRecordID>
<Channel>Application</Channel>
<Computer>XXXXXX.com</Computer>
<Security UserID="S-1-5-21-3296303954-3414968290-1573956784-1136" />
</System>
- <EventData>
<Data>Product: XXXXXX -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2727. The arguments are: _0024F16DE39F4B7D9BF184AC802A7310, ,</Data>
<Data>(NULL)</Data>
<Data>(NULL)</Data>
<Data>(NULL)</Data>
<Data>(NULL)</Data>
<Data>(NULL)</Data>
<Data />
<Binary>7B41433031463831372D434435302D343530332D423239342D3844334438453538323844417D</Binary>
</EventData>
</Event>
MSI 安装程序登录本地计算机
MSI (c) (4C:5C) [16:58:07:070]: PROPERTY CHANGE: Adding INSTALLLEVEL property. Its value is '1'.
MSI (c) (4C:5C) [16:58:07:070]: Note: 1: 2727 2: _7F06229DCDB74690AC0D18DBD0357B3B
DEBUG: Error 2727: The directory entry '_7F06229DCDB74690AC0D18DBD0357B3B' does not exist in the Directory table
DEBUG: Error 2835: The control ErrorIcon was not found on dialog ErrorDialog
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2835. The arguments are: ErrorIcon, ErrorDialog,
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2727. The arguments are: _7F06229DCDB74690AC0D18DBD0357B3B, ,
MSI (c) (4C:5C) [16:58:08:457]: Product: XXXXX -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2727. The arguments are: _7F06229DCDB74690AC0D18DBD0357B3B, ,
日志中没有其他内容具有该值_7F06229DCDB74690AC0D18DBD0357B3B
。此值在安装之间是相同的。这不是安装程序属性中的ProductCode
或UpgradeCode
。
设置
- Visual Studio 2019 企业版
- Windows 控制台项目(作为服务运行)
- .NET 框架 4.7.1
- Microsoft Visual Studio 安装程序项目 1.0.0 扩展
- 安装程序在 Windows 10 Pro 和 Windows Server 2016 上运行
我尝试了什么:
- 清理并重建一切
- 手动创建安装程序应该创建的所有目录
- 从安装程序中删除了未使用的依赖项(dll) - 它们以红色突出显示。
- 按照另一个 SO 答案的建议添加
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
到文件中*.csproj
所有代码都已备份,因此我可以返回package.config
但不希望这样做,除非找不到解决方案。
注意: 无论出于何种原因,.msi
迁移后的大小几乎是迁移前的两倍.msi
。
更新
安装程序在“选择安装文件夹”对话框(发生故障时不显示)之前失败。
我还尝试将分支恢复到迁移之前,但由于迁移更改仍然存在并阻止安装程序工作,因此恢复不起作用。我不得不删除所有文件并从 Git 中恢复它们,以最终删除迁移的包并让安装程序正常工作。