2

我在部署项目时遇到以下问题:

警告 8 'Microsoft Report Viewer 2012 Runtime' 中的 'PublicKey' 属性的值与文件 'C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\Bootstrapper\Packages\ReportViewer\ReportViewer 的值不匹配.msi'。

其他组件也是一样的:

警告 6 'Microsoft® System CLR Types for SQL Server® 2012 (x86)' 中的 'PublicKey' 属性的值与文件 'C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A 的值不匹配\Bootstrapper\Packages\SqlClrTypes_x86\SQLSysClrTypes.msi'。

不能忽略此警告,因为它会在其他设备上安装软件时产生问题。

4

1 回答 1

1

Visual Studio 会检查一个名为Product.xml以获取有关安装程序先决条件的详细信息的文件。此文件将与警告中引用的安装程序位于同一位置。

对于每个警告,您需要更新PackageFile属性PublicKey以匹配您正在使用的安装程序。随着新版本的发布,签名可能会更改,但Product.xml新安装程序版本中不包含签名,因此它并不总是匹配。

要解决此问题:

更新包数据

  • 打开[Program Files]\Microsoft SDKs\Windows\$Version\Bootstrapper\Packages\$PackageName folder
  • 右键单击引用的安装程序包。
  • 选择属性
  • 选择Digital Signatures选项卡
  • sha1从签名列表中选择摘要
  • 点击Details
  • 点击View Certificate
  • 选择Details选项卡
  • 选择Public Key
  • 复制预览窗口中的所有文本
  • 将其粘贴到文本编辑器中
  • 使用 Find\Replace 工具从键中删除所有空格
  • 编辑Product.xml文件。
  • 查找元素<PackageFile Name="$PackageName"并更改PublicKey
  • 保存Product.xml文件。
  • 对带有此警告的每个包重复此操作。
于 2020-11-24T18:00:10.450 回答