SGEN 64位服务器

问题描述:

我试图解决的时候为我的.NET解决方案构建一个构建服务器的一部分调用其中SGEN抛出一个错误的问题上拖延签约。我从服务器上的命令行运行构建以消除CI服务器作为一个因素。SGEN 64位服务器

提供的特定错误信息是:

SGEN:错误:无法加载文件或程序集MyAssembly.dll程序, 版本= 0.0.0.0,文化=中性公钥= 56e8273d901d717f'或 一个的依赖关系。强名称验证失败。 (来自HRESTULT的异常 :0x013141A)

从命令行运行构建脚本不会产生其他错误。

有问题的组件是延迟签名的程序集,以匹配指定令牌的公共密钥建立。

在服务器上,我已经使用sn.exe工具(*,56e8273d901d717f)注册了用于验证跳过的密钥令牌,因为在尝试完整签名阶段之前,需要运行构建过程的某些测试步骤。

构建过程成功地适用于台式机开发和WIN2K3服务器上。我在一台新的Win2k8R2服务器上运行这些测试,它将替换旧的盒子。

问题出在SN.EXE工具。

虽然我已经添加了验证跳进入服务器时,SGEN工具不看这个,因为它运行的64位进程和SN工具是32位版本(尽管存在于64位“Program Files”文件夹中)。

  • 32位SN.EXE住在C:\ Program Files文件\微软的SDK \的Windows \ V7.1 \ BIN \ SN.EXE。
  • 64位SN.EXE住在C:\ Program Files文件\微软的SDK \的Windows \ V7.1 \ BIN \ 64 \ SN.EXE

这两个工具写入完全独立的登记 - 核查必须被添加到任何依赖于机器和该exe的“比特率”在.NET安装的“比特率”被调用。

注册与64位SN.EXE的条目已解决了这个问题。