我有一个最初没有强名的dll。应用程序已成功加载它。
但是在用.snk密钥文件签名之后,应用程序拒绝加载它并抛出System.IO.FileNotFoundException
。
如果我在没有snk的情况下重建它,则会成功加载
是什么原因?
答案 0 :(得分:0)
最有可能的事情是你的应用程序以前使用过的另一个版本的dll已经狡猾地"由Visual Studio复制并在某些时候偶然出现在部署机器上(是的,它看起来像版本问题)。一旦你签署了dll你就意味着使用副作用了,替代dll就不能再使用了。
另一种可能性是你使用了#34;任何cpu"一旦dll签署,结果就不同了。我已经从"任何cpu"全面看到了这种不可预测的行为。建立。微软您在想什么?
未找到dll错误可能是指一个依赖项,我不确定因为我不需要签署一个dll超过五年,但是有没有签名且预计会或根本不兼容的库dll使用已签名的父dll。关于"任何cpu"的主题,签名可能需要32位或64位的显式构建。