我在Visual Studio 2005项目中添加了一个弱命名的程序集(它是强命名的)。我现在得到的错误:
"引用程序集'xxxxxxxx'没有强名称"
我需要签署这个第三方程序集吗?
我在Visual Studio 2005项目中添加了一个弱命名的程序集(它是强命名的)。我现在得到的错误:
"引用程序集'xxxxxxxx'没有强名称"
我需要签署这个第三方程序集吗?
当前回答
展开使用“没有强名称键”的项目的项目文件,寻找.snk文件(. strongnamekey)。
在Windows资源管理器中浏览这个文件(这样你就知道它在哪里了)。
回到Visual Studio中那个没有“强名称键”的项目,做
右键单击项目文件 选择属性 选择“签名选项卡”(在左侧) 单击“签署程序集”复选框 然后<Browse>到前面找到的.snk文件
这样应该可以了。这为我解决了一个问题,在同一个解决方案中,在另一个项目中使用一个表单。
我希望这能有所帮助。
其他回答
我添加了NuGet包“StrongNamer”,我的问题解决了。
我在使用NuGet安装的ServiceStack DLL文件时遇到了这个问题。原来还有另一组标记为已签名的DLL文件可用。这不是每个人的答案,但您可能只需要检查程序集的现有签名版本。
对我来说,问题在于没有强名称的NuGet包。解决方案是从NuGet安装StrongNamer,它会自动向所有引用的程序集添加强名称。只是简单地在项目中引用它修正了我的问题。
ilmerge使用。ilmerge来自微软,但它没有随Visual Studio或sdk一起发布。不过你可以从这里下载。还有一个GitHub存储库。你也可以从NuGet安装:
PM> Install-Package ilmerge
使用方法:
ilmerge assembly.dll /keyfile:key.snk /out:assembly.dll /targetplatform:v4,C:\Windows\Microsoft.NET\Framework\v4.0.30319 /ndebug
如果需要,你可以使用sn(从Visual Studio)生成你自己的密钥文件:
sn -k key.snk
展开使用“没有强名称键”的项目的项目文件,寻找.snk文件(. strongnamekey)。
在Windows资源管理器中浏览这个文件(这样你就知道它在哪里了)。
回到Visual Studio中那个没有“强名称键”的项目,做
右键单击项目文件 选择属性 选择“签名选项卡”(在左侧) 单击“签署程序集”复选框 然后<Browse>到前面找到的.snk文件
这样应该可以了。这为我解决了一个问题,在同一个解决方案中,在另一个项目中使用一个表单。
我希望这能有所帮助。