【问题标题】:PublicKey issues when deploying the project部署项目时的PublicKey问题
【发布时间】:2023-03-18 19:58:02
【问题描述】:

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

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

其他组件也一样:

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

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

【问题讨论】:

  • 您在 GAC 中查找过正确的密钥吗?
  • 我已按照建议下载了软件包。另外,我已经解锁了包裹,以便可以阅读。但它仍然有同样的问题。 GAC 检查是什么意思。
  • 在 GAC 中查看该程序集版本、公钥,如果它们不匹配,则检查您的程序集。C:\Windows\assembly
  • 您能告诉我如何检查 GAC 值吗?
  • 在该文件夹中查找该程序集名称然后右键单击它和属性以检查公钥

标签: c# packaging public-key


【解决方案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 文件。
  • 对每个包重复此警告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多