我已将一个弱名称程序集添加到我的Visual Studio 2005项目中(该项目是强名称的)。 现在出现以下错误:
"引用的程序集 'xxxxxxxx' 没有强名称"
我需要对这个第三方程序集签名吗?
我已将一个弱名称程序集添加到我的Visual Studio 2005项目中(该项目是强名称的)。 现在出现以下错误:
"引用的程序集 'xxxxxxxx' 没有强名称"
我需要对这个第三方程序集签名吗?
PM> Install-Package ilmerge
使用方法:
ilmerge assembly.dll /keyfile:key.snk /out:assembly.dll /targetplatform:v4,C:\Windows\Microsoft.NET\Framework\v4.0.30319 /ndebug
如果需要,您可以使用 Visual Studio 中的 sn
生成自己的密钥文件:
sn -k key.snk
1> Register-PackageSource -ProviderName NuGet -Name NuGet -Location http://www.nuget.org/api/v2
- François2> Install-Package -Name ILMerge
- François3> $env:path += ';C:\Program Files\PackageManagement\NuGet\Packages\ilmerge.2.14.1208\tools'
- François4> ILMerge.exe .\packages\WireMock.Net.1.0.4.2\lib\net452\WireMock.Net.dll /keyfile:key.snk /out:WireMock.Net.dll /targetplatform:v4,C:\Windows\Microsoft.NET\Framework\v4.0.30319 /ndebug /lib:.\packages\Newtonsoft.Json.10.0.3\lib\net45\ /lib:.\packages\Handlebars.Net.1.9.0\lib\net40 /lib:.\packages\SimMetrics.Net.1.0.4\lib\net45 /lib:.\packages\Microsoft.Owin.2.0.2\lib\net45 /lib:.\packages\Owin.1.0\lib\net40 /lib:.\packages\Microsoft.Owin.Hosting.2.0.2\lib\net45 /lib:.\packages\MimeKitLite.2.0.1\lib\net45 /lib:.\packages\XPath2.1.0.5.1\lib\net40 /lib:.\packages\RestEase.1.4.4\lib\net45
- François我的问题是,我安装了两个版本不同的相同NuGet包。
情况:
您在解决方案X、Y中有项目A、B、C、D。
项目A、B、C在X中,项目A、C、D在Y中。
我需要在项目A中使用项目C,但后来我不再使用。在项目A的bin Debug中有C.dll。
如果我编译解决方案X,一切正常(在该解决方案中,我删除了A -> C的引用),但在解决方案Y中,我遇到了这个问题。
解决方案是在项目A的bin Debug中删除C.dll。
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\signtool.exe" sign /f "$(ProjectDir)\YourPfxFileNameHere.pfx" /p YourPfxFilePasswordHere /d "Your software title here" /du http://www.yourWebsiteHere.com /t http://timestamp.verisign.com/scripts/timstamp.dll /v "$(BaseOutputPath)$(TargetFileName)"
首先,请确保解决方案中所有项目的NuGet包版本相同。例如,您不希望一个项目引用NLog 4.0.0.0,而另一个项目引用NLog 4.1.0.0。然后尝试使用以下命令重新安装NuGet包:
Update-Package -reinstall
我的程序集A引用了三个第三方程序集,但只有两个被程序集B引用并包含在引用中。
通过更新包命令添加了缺失的第三方程序集引用,错误得以解决。