C# 强名称程序集验证失败,引用自未签名的项目

C# 强名称程序集验证失败,引用自未签名的项目,c#,sign,C#,Sign,在谷歌搜索了一个小时后,我找不到我遇到的问题的正确答案,希望你能帮助我 我有一个C#framework 3.5类库项目,所以我对它进行了签名,创建了一个简单的键(而不是延迟签名),然后对DLL进行了混淆 然后,我尝试从Windows窗体应用程序访问该程序集,但当我调用该程序集的任何方法时,我得到错误:“强名称验证失败” 我不知道是否也应该对Windows应用程序进行签名,以引用强名称程序集,或者在Windows应用程序源代码的using指令处添加某种特殊标记 我是一个新的名字很强的工作,所以请给

在谷歌搜索了一个小时后,我找不到我遇到的问题的正确答案,希望你能帮助我

我有一个C#framework 3.5类库项目,所以我对它进行了签名,创建了一个简单的键(而不是延迟签名),然后对DLL进行了混淆

然后,我尝试从Windows窗体应用程序访问该程序集,但当我调用该程序集的任何方法时,我得到错误:“强名称验证失败”

我不知道是否也应该对Windows应用程序进行签名,以引用强名称程序集,或者在Windows应用程序源代码的using指令处添加某种特殊标记

我是一个新的名字很强的工作,所以请给我一些建议,如何处理这个问题。我需要对程序集进行强命名,以确保没有入侵者可以替换我的程序集版本


提前感谢。

很抱歉占用了您的时间,我找到了问题的原因和解决方案:

首先,当我阻塞程序集时,生成的SNK不再工作,因此解决方案是在阻塞程序集后重新生成SNK

其次,我需要在我的Windows应用程序中包含SNK文件,以便验证强名称程序集

有了这两个变化,一切都很顺利


无论如何,谢谢你抽出时间。

这就解释了。对程序集进行签名可使.Net检查文件是否已被篡改。混淆器会更改文件,因此.Net会看到该文件已被篡改。您不需要对将使用程序集的任何应用程序进行签名。已签名程序集只能引用其他已签名程序集。