迁移现有密钥容器以进行强命名

时间:2019-02-08 10:37:47

标签: assemblies private-key strongname snk sn

如何将密钥容器从一台计算机迁移到另一台计算机?

我在旧机器上有一个密钥容器,用于强命名程序集。
目前,我正在将项目迁移到较新的计算机上。
不幸的是,旧计算机上的密钥容器被标记为不可导出,但是我设法使用mimikatz将其导出。
结果是一个PVK文件(私钥),我使用Chilkat library将其转换为XML文件(RSAKeyValue)。
然后可以使用aspnet_regiis将xml文件导入到新计算机上的密钥容器中。
但是,在新计算机上构建项目时,出现此链接器错误:

  

LINK:致命错误LNK1256:ALINK操作失败(80040405):   密钥容器名称'...'不存在

我注意到,使用aspnet_regiis和sn.exe创建的密钥容器之间存在差异。
链接器可以找到由sn.exe生成的密钥容器,但找不到由aspnet_regiis生成的密钥容器(来自上面的LNK1256错误)。
但是为了与sn.exe安装相同的密钥容器,它必须是一个.snk文件,但我还没有进行转换。
如果我可以将其转换为.snk文件,则不必将其导入密钥容器,因为我也可以使用强名称密钥文件进行签名。

0 个答案:

没有答案