0

我有一个控制台应用程序在 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。此值在安装之间是相同的。这不是安装程序属性中的ProductCodeUpgradeCode

设置

  • 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 中恢复它们,以最终删除迁移的包并让安装程序正常工作。

4

1 回答 1

0

解决方案最终是删除旧的安装程序项目,迁移到PackageReference并创建一个新的安装程序项目。

基于 Git,唯一的区别最终是.vdproj文件中的引用。新的安装程序比第一个大,但其他一切都一样。

问题

从packages.config迁移到PackageReference后,安装程序停止工作。

解决方案

  1. 删除安装程序项目(确保您有备份)。
  2. 进行迁移。
  3. 创建一个新的安装程序项目。

原因

自动迁移不会更新安装程序项目中的.dll 引用。

于 2021-11-12T20:10:12.923 回答