MSB3482诊断代码

本文介绍MSB3482错误代码。

消息文本

MSB3482: An error occurred while signing:

DESCRIPTION

当 MSBuild 在运行 SignFile 任务时尝试对输出文件进行签名时遇到错误时,会发生此错误。

决议

首先,确认签名文件是否存在。 接下来,请确保已安装签名工具(该工具作为 Visual Studio 的一部分安装)。

标准输出消息文本后跟来自签名工具的额外信息。 查看其他信息以确定问题的原因。 如果错误提到不支持的选项,例如 /fd 该选项,则系统上可能有较旧版本的 signtool.exe 文件。 当进程遇到旧版本或不支持的文件时,MSBuild 将返回此错误消息。

MSBuild 适用于 Visual Studio 或 .NET SDK 安装中的工具版本。 问题的修复取决于具体情况。 一些可能的解决方法包括:

  • 编辑 PATH 环境变量并重新排序目录
  • 卸载、重命名或隐藏旧版 signtool.exe 工具
  • 卸载或更新包含该工具的软件包,例如更新旧版 Windows SDK

指纹或证书无效

如果指纹无效,则会触发加密错误,你可能会看到MSB3482错误。 检查提供给 CertificateThumbprint 任务的 SignFile 参数的字符串值。 证书指纹是证书的 SHA-1 哈希。 有关详细信息,请参阅 获取受信任的根 CA 证书的 SHA-1 哈希。 如果复制并粘贴证书详细信息中的指纹,请确保不包含额外的 (3F) 不可见字符,这可以防止 SignFile 任务查找证书。

测试证书在一段时间后过期。 可能需要创建新的证书。 如需更多信息,请参阅 签署应用程序和部署清单。 有关 Visual Studio 2019 或更高版本中较新的 .NET 项目,请参阅 使用 ClickOnce 部署 .NET Windows 桌面应用程序

在非交互式环境中运行程序(例如管道中的脚本)时,可以使用命令行工具 certutil 创建证书:

certutil –f –p [certificate_password] –importpfx <path to pfx file>

适用于

MSBuild 的所有版本