部署项目时PublicKey问题

时间:2013-06-28 22:52:17

标签: c# packaging public-key

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

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

此外,它适用于其他组件:

警告6“Microsoft®系统CLR类型forSQLServer®2012(x86)”中“PublicKey”属性的值与文件“C:\ Program Files(x86)\ Microsoft SDKs \ Windows \的值不匹配” v8.0A \引导程序\软件包\ SqlClrTypes_x86 \ SQLSysClrTypes.msi”。 Aamali计划

问题是这不能忽略,因为在其他设备上安装软件时会产生问题。你能告诉我怎么解决这个问题吗?

BR //

1 个答案:

答案 0 :(得分: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
  • 从预览窗口复制所有文本
  • 将其粘贴到文本编辑器中
  • 使用“查找\替换”工具删除键中的所有空格
  • 编辑Product.xml文件。
  • 找到<PackageFile Name="$PackageName"的元素并更改PublicKey
  • 保存Product.xml文件。
  • 对每个包装重复此警告。