从 packages.config 迁移到 PackageReference 后 VS2019 MSI 安装程序错误 2727
VS2019 MSI Installer error 2727 after migration from packages.config to PackageReference
我在 Visual Studio 2019 的 .NET Framework 4.7.1 上有一个控制台应用程序 运行,带有 Microsoft Visual Studio 安装程序项目(MSI 安装程序)。
从 packages.config 迁移到 PackageReference 后,.msi
安装程序 returns 以下收集所有安装程序输入并开始安装后出错。
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2727.
.msi
在迁移之前创建的安装程序工作正常。可执行文件和项目在迁移后工作正常。问题仅出在安装程序上。从 VS 2019 项目和生成的 .msi
文件安装时可以重现该问题。
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 Framework 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
的两倍
更新
安装程序在 Select 安装文件夹 对话框之前失败(失败时不显示)。
这是安装程序失败之前的屏幕。
我还尝试将分支恢复到迁移之前的状态,但恢复不起作用,因为迁移更改仍然存在并阻止安装程序工作。我不得不删除所有文件并从 Git 恢复它们,以最终删除迁移的包并让安装程序正常工作。
解决方案最终是删除旧的安装程序项目,迁移到 PackageReference,然后创建一个新的安装程序项目。
基于 Git,唯一的区别是 .vdproj
文件中的引用。新安装程序比第一个大,但其他一切都一样。
问题
安装程序在从 packages.config 迁移到 PackageReference.
后停止工作
解决方案
- 删除安装程序项目(确保您有备份)。
- 进行迁移。
- 创建一个新的安装程序项目。
原因
自动迁移不会更新 Installer 项目中的 .dll 引用。
我在 Visual Studio 2019 的 .NET Framework 4.7.1 上有一个控制台应用程序 运行,带有 Microsoft Visual Studio 安装程序项目(MSI 安装程序)。
从 packages.config 迁移到 PackageReference 后,.msi
安装程序 returns 以下收集所有安装程序输入并开始安装后出错。
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2727.
.msi
在迁移之前创建的安装程序工作正常。可执行文件和项目在迁移后工作正常。问题仅出在安装程序上。从 VS 2019 项目和生成的 .msi
文件安装时可以重现该问题。
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 Framework 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
的两倍
更新
安装程序在 Select 安装文件夹 对话框之前失败(失败时不显示)。
这是安装程序失败之前的屏幕。
我还尝试将分支恢复到迁移之前的状态,但恢复不起作用,因为迁移更改仍然存在并阻止安装程序工作。我不得不删除所有文件并从 Git 恢复它们,以最终删除迁移的包并让安装程序正常工作。
解决方案最终是删除旧的安装程序项目,迁移到 PackageReference,然后创建一个新的安装程序项目。
基于 Git,唯一的区别是 .vdproj
文件中的引用。新安装程序比第一个大,但其他一切都一样。
问题
安装程序在从 packages.config 迁移到 PackageReference.
后停止工作解决方案
- 删除安装程序项目(确保您有备份)。
- 进行迁移。
- 创建一个新的安装程序项目。
原因
自动迁移不会更新 Installer 项目中的 .dll 引用。