我通常不会费心为我的.NET程序集签名,所以对此不了解太多。在我正在工作的一个小项目中,需要进行签名,因此我创建了一个新的带密码保护的密钥。
我期望在重新编译程序集时的某个时间点被提示输入密码,但在创建密钥文件后,我从未需要在任何地方输入过它。这似乎违背了密码保护密钥的初衷。
我想密码可能被缓存到某个地方,但是在哪里?它是否在某种私有存储中?如果我将我的整个解决方案目录与密钥文件一起交给其他人,他们是否会被要求输入我输入的密码,还是能够在没有密码的情况下签名程序集?
互联网上有很多关于强名称密钥和使用它们的文章,但由于某种奇怪的原因,它们都没有详细说明Visual Studio实际上如何使用密码。
更新: 重新启动Visual Studio(和Windows)没有效果,因此缓存似乎是持久性的。删除.suo文件并不能改变签名程序集不需要密码的事实。