Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 第三方DLL没有';强名称';?_C#_.net_Vb.net_Visual Studio 2010_Assembly Signing - Fatal编程技术网

C# 第三方DLL没有';强名称';?

C# 第三方DLL没有';强名称';?,c#,.net,vb.net,visual-studio-2010,assembly-signing,C#,.net,Vb.net,Visual Studio 2010,Assembly Signing,我的Visual Studio 2010解决方案引用了第三方专有DLL 当我尝试编译解决方案时,错误消息如下: 无法发出程序集:引用的程序集“NameOfAssembly.DLL”没有 没有一个强有力的名字 此问题的唯一解决方案是使用我自己的密钥对第三方DLL进行签名吗?如果需要强签名程序集,则所有引用都必须是强签名的。这描述了这些步骤。鉴于在构建程序集时给程序集起一个强名称是多么微不足道,任何创建其他人使用的程序集的人都会犯疏忽罪。之后再这样做是相当痛苦的,您必须使用ildasm.exe反编译

我的
Visual Studio 2010
解决方案引用了第三方专有DLL

当我尝试编译解决方案时,错误消息如下:

无法发出程序集:引用的程序集“NameOfAssembly.DLL”没有 没有一个强有力的名字


此问题的唯一解决方案是使用我自己的密钥对第三方DLL进行签名吗?

如果需要强签名程序集,则所有引用都必须是强签名的。这描述了这些步骤。

鉴于在构建程序集时给程序集起一个强名称是多么微不足道,任何创建其他人使用的程序集的人都会犯疏忽罪。之后再这样做是相当痛苦的,您必须使用ildasm.exe反编译程序集,然后将其与ilasm.exe放回一起,现在使用/key选项


如果你和主人有工作关系,那么给他们发一张鼻窦图。如果您不这样做,那么您可能应该质疑程序集的质量,这是一个重大的疏忽,并表明很少有人实际使用该程序集。

确保您获得了将程序集作为强名称进行反向工程的许可。我不想让你有任何法律麻烦。可以使用ILDASM和ILASM命令对程序集进行强名称命名。在Visual Studio命令提示符中

使用ILDASM将程序集转换为MISL代码。 ILDASM MyThirdParty.dll/out:MyThirdParty.il

使用ILASM使用strongname键进行编译。 ILASM MyThirdParty.il/dll/resource=MyThirdParty.res/key=MyKey.snk

如果需要使用强名称键,请使用SN命令。我认为这是-k选项。
如果出现坏映像异常,则检查编译程序集的CLR版本。如果是CLR 2.0/3.5,那么使用“C:\Windows\Microsoft.NET\Framework\v2.0.50727\ILASM”而不是4.0版本。

Hmm,删除第一段并发送电子邮件。@HansPassant有趣的是,Dapper也没有签名。我们目前必须通过Dapper Nuget软件包来解决这个问题。我们在源代码上需要签名的程序集,这是我们目前通过集成Dapper源代码完成的。开源项目不太值得nastygram。并不是说你必须把它寄得很远,这是一个StackExchange项目,Marc Gravell是一个经常投稿的人:)最近,还有一个相反的观点,比如