![](/img/trans.png)
[英]Elmah MySql Nuget Package Issue 'Could not load file or assembly'
[英]Nuget package references cause “Could not load file or assembly” ?
Nuget包解析有一个最近的原则。 有关详细信息,请参阅NuGet如何解析包依赖项。 Microsoft图表用于解释:
我今天遇到的一个问题是我的一个Nuget包(称为Package A当前版本1.2.3)最初只支持netstandard 2.0的版本,它在csproj文件中定义。
<TargetFramework>netstandard2.0</TargetFramework>
我有另一个产品,ECS Nuget包(称为包B版1.0.0),包B需要引用包A.
关系路线是[包B 1.0.0] - > [包A 1.2.3]
此时,程序中的两个包可以正常使用。
后来,由于.net框架的支持,我修改了原始包A nuget包并将其更改为以下内容。
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
包的包生成版本是1.3.2。 这时,我参考上面的两个包,发现编译没问题,但我在运行时遇到错误。
我可以通过升级包B解决上述问题,但为什么会出现这个错误? 是因为使用了TargetFrameworks吗? 我也希望大个子能指点一下。
当我比较*.deps.json
文件时,我发现了一些有用的东西。 这是第一个获取以下json文件的场景:
"aliyun-net-sdk-core/1.3.2": {
"dependencies": {
"Serilog": "2.5.0",
"Serilog.Exceptions": "4.0.0",
"Serilog.Sinks.File": "4.0.0"
},
"runtime": {
"lib/netstandard2.0/aliyun-net-sdk-core.dll": {
"assemblyVersion": "0.0.0.0",
"fileVersion": "0.0.0.0"
}
}
}
但是,由于引用了1.3.2版本,CLR在加载程序集时找不到版本1.3.2的DLL,只有程序集版本0.0.0.0,所以CLR查找引用的1.2.3版本由原始项目,但没有找到,所以它报告错误。 清楚地了解。
在我编写项目的miss assembly版本后,我得到了正确的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.