我正在运行 Visual Studio 2012 并在单独的解决方案中编写后端 Web 服务和桌面软件。因为桌面软件需要运行提升(“作为管理员”),我需要在提升的 Visual Studio 实例中运行桌面解决方案。两种解决方案都包括一个签名的库项目。
当我在 Visual Studio 实例中打开 Web 服务解决方案而不提升它时,我收到一个构建错误,例如
无法导入以下密钥文件:Redacted.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书或手动将证书安装到具有以下密钥容器名称的强名称 CSP:VS_KEY_Redacted。
当我尝试通过这样做来解决此问题时,它会失败并显示一条错误消息,指出密钥已存在。
当我尝试排除然后重新包含 PFX 文件时,PFX 文件并没有正确处理,而是使项目属性 → 签名中的“强名称密钥文件”下拉列表为空白。在此之后,Web 服务解决方案构建,但似乎该库没有得到签名,因为在(提升的)桌面解决方案中,构建失败并显示“程序集生成失败 - 引用的程序集'编辑'没有强名称”。
如果我尝试从 Web 服务解决方案的下拉列表中再次选择 PFX 文件(并重新输入密码),我会得到:
导入密钥
时出错尝试引用不存在的令牌
从(提升的)桌面解决方案设置 PFX 文件是可行的,但让我回到第一方。
似乎根据海拔高度,Visual Studio 会在不同的密钥存储中查找解锁 PFX 的任何内容。我是否必须运行提升的 Visual Studio 的两个实例来解决该问题,或者我可以以某种方式告诉它在同一个地方查找?