我有一个项目ABC,它没有直接引用AssemblyNameXyz包,但在运行应用程序ABC时,我看到错误Could not load file or assembly 'AssemblyNameXyz, Version=4.0.0.142 ...' - The system cannot find the file specified.我如何知道我的项目中哪个已安装的包可能引用了在运行时未找到的此包?
Could not load file or assembly 'AssemblyNameXyz, Version=4.0.0.142 ...' - The system cannot find the file specified.
yvt65v4c1#
在Bash终端的nuget软件包文件夹(~/.nuget/packages)中,运行命令find . -name "*.nuspec" -exec grep "VERSION_NUMBER" {} +“VERSION_NUMBER”是异常/错误指示的版本,例如根据问题,它的4.0.0.142
~/.nuget/packages
find . -name "*.nuspec" -exec grep "VERSION_NUMBER" {} +
4.0.0.142
$ find . -name "*.nuspec" -exec grep "4.0.0.142" {} + ./AssemblyNamePqr/2021.1.0.27/AssemblyNamePqr.nuspec: <dependency id="AssemblyNameXyz" version="4.0.0.142" exclude="Build,Analyzers" />
字符串结果表明:AssemblyNamePqr表示偏离/缺失的依赖关系。注记1.如果在与发生问题的环境不同的环境中重现问题,请确保清除nuget缓存。
AssemblyNamePqr
详细信息
NU1605可能被忽略,这防止了从https://learn.microsoft.com/en-us/nuget/concepts/dependency-resolution#direct-dependency-wins等方案中断安装到项目的“直接”nuget包可能缺少(“间接包”)依赖项。因为.Net会延迟加载程序集(参考:https://michaelscodingspot.com/assemblies-load-in-dotnet/-官方MS链接?)问题在运行时被捕获,并出现如上所示的错误。
1条答案
按热度按时间yvt65v4c1#
在Bash终端的nuget软件包文件夹(
~/.nuget/packages
)中,运行命令find . -name "*.nuspec" -exec grep "VERSION_NUMBER" {} +
“VERSION_NUMBER”是异常/错误指示的版本,例如根据问题,它的
4.0.0.142
字符串
结果表明:
AssemblyNamePqr
表示偏离/缺失的依赖关系。注记
1.如果在与发生问题的环境不同的环境中重现问题,请确保清除nuget缓存。
详细信息
NU1605可能被忽略,这防止了从https://learn.microsoft.com/en-us/nuget/concepts/dependency-resolution#direct-dependency-wins等方案中断
安装到项目的“直接”nuget包可能缺少(“间接包”)依赖项。因为.Net会延迟加载程序集(参考:https://michaelscodingspot.com/assemblies-load-in-dotnet/-官方MS链接?)问题在运行时被捕获,并出现如上所示的错误。