在我的解决方案中,有一个C#类库项目(一个项目)。我想在该项目中添加强名称程序集。但是(一个项目)包含另一个DLL(B.dll)。
我使用VS2012 x86 Native Tools命令提示符生成“a.snk”。 喜欢这个
sn.exe -k C:\ A.snk
我在(A项目)的“AssemblyInfo.cs”中添加以下代码。然后构建项目。
[assembly:ComVisible(true)]
[assembly:AssemblyDelaySign(false)]
[assembly:AssemblyKeyFile(“C:\ A.snk”)]
构建(项目)后,它出现错误“程序集生成失败 - 引用程序集'B'没有强名称”。但是(B.DLL)是由第三方创建的。
如何解决?非常感谢。
答案 0 :(得分:0)
你有问题。您唯一的选择是要求第三方提供强名称,否则您将无法为您的申请执行此操作。 这些强名称的关键在于创建某种问责制,如果第三方dll失败或做了不正常的事情,你将对你的应用负责。 ?
在我在msdn上找到一些内容之前,我们已经问过这个问题: https://social.msdn.microsoft.com/Forums/vstudio/en-US/35930958-9775-4e56-bd38-0362d124ffc4/assign-strong-name-to-third-part-dll
答案 1 :(得分:0)
您不必为程序集(项目)创建强名称,因为它引用了具有强名称的程序集。只是不要这样做,你将能够毫无问题地编译你的程序集。实际上,所有BCL程序集都有强名称,否则无法引用。
但正如Philip Stuyck在上面的回答中所说,如果你需要创建一个强名称,你将不得不向你的第三方供应商询问B.DLL的签名版本。