签名时发生错误:密钥不能在指定状态下使用"编译Outlook 2010插件时
本文关键字:quot 编译 插件 2010 Outlook 状态 错误 密钥 不能 | 更新日期: 2023-09-27 18:18:15
我正在构建一个Outlook 2010插件,它将使用票务系统的API绑定到我们的票务系统中。一周前,我能够编译并获得上下文/功能区菜单正确执行其功能。今天早上我添加了一些函数来加密和解密API密钥,但是现在当我尝试编译时,我得到
"错误1签名时发生错误:密钥在指定状态下无效。"
没有与错误相关的行号或文件。一开始我以为是体制出了问题。我包含的安全类,但注释掉了与之相关的所有内容,并删除了对System的引用。安全部门没有解决这个问题。
我试着重新启动一切,做一个干净的构建没有运气。在这个论坛帖子的建议下,我试过删除我的机器和本地RSA文件,但这没有什么区别。我也试过删除_TemporaryKey。我的解决方案中的pfx文件,希望如果有问题,VS会重新创建一个新的工作,但这甚至没有改变错误信息,告诉我文件丢失了。
在这之后,我试着打开一个不同的插件项目,我没有修改大约一个星期,它也有同样的错误。我不确定这是Visual Studio还是我的电脑的问题,但是一个全新的Outlook插件项目将成功编译,所以它只影响旧项目。
创建一个新的测试证书似乎解决了这个问题。这篇博文给我指明了正确的方向。
- 打开给出错误的项目的属性页。
- 单击"签名"页签。 单击"创建测试证书"。
- 输入密码,点击OK。
我在重新加载我的机器后遇到了同样的错误。正如Nick提到的,您可以创建一个新的证书,然后从那里开始。
我最终做的是将原始证书添加回我的证书存储中,以便在Visual Studio发布过程中再次使用它。双击PFX文件并按照提示操作应该就可以了。
需要注意的一点是,如果过了足够的时间,证书可能会过期,最好创建一个新的。