我正在尝试解决在构建服务器上作为我的 .NET 解决方案构建的一部分调用 SGEN 时引发错误的问题。我正在从服务器上的命令行运行构建,以消除 CI 服务器作为一个因素。
提供的具体错误消息是:
SGEN:错误:无法加载文件或程序集“MyAssembly.dll,版本=0.0.0.0,Culture=neutral,PublicKeyToken=56e8273d901d717f”或其依赖项之一。强名称验证失败。(来自 HRESTULT 的异常:0x013141A)
从命令行运行构建脚本不会产生其他错误。
有问题的程序集是延迟签名程序集,使用与指定令牌匹配的公钥构建。
在服务器上,我使用 sn.exe 工具 ( *,56e8273d901d717f
) 注册了用于跳过验证的密钥令牌,因为这是在尝试完整签名阶段之前运行构建过程的一些测试步骤所必需的。
构建过程在开发人员桌面和 Win2K3 服务器上成功运行。我在一个新的 Win2k8R2 服务器上运行这些测试,这是为了替换旧的盒子。