[英]How to test if a NuGet package works with a lower version of its dependency?
假设我在我的项目中使用的是NuGet程序包,它依赖于xyz的1.2.3版本。但是,我想测试一下NuGet程序包是否适用于xyz的1.1.1版本。
我试过用这种方式在项目的App.config中进行程序集绑定,将1.1.1版本放在与1.2.3相同的目录中。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="x.y.z" publicKeyToken="xxxx" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.3 newVersion="1.1.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
但是,我仍然收到此错误:
Could not load file or assembly 'x.y.z, Version=1.2.3, Culture=neutral,
PublicKeyToken=xxxx' or one of its dependencies.
The system cannot find the file specified.
有什么想法可以测试以查看NuGet程序包是否与较低版本的dll兼容?
谢谢
NuGet是一个依赖项管理工具。 默认情况下,当您将其安装到项目中时,它将获取任何库的最新版本。 在您的示例中,您的项目安装了xyz的1.2.3版本,这意味着它不会像您试图指出的那样找到1.1.1版本。
要使用旧版本进行测试,第一步需要从项目中卸载软件包的当前版本。 您需要转到程序包管理器控制台,然后在项目上执行命令Uninstall-Package xyz
。
完成此操作后,您将需要安装要测试的特定版本的xyz。 为此,您需要运行Install-Package xyz -Version 1.1.1
。 这将发布到NuGet,获取软件包的1.1.1版本并安装它,现在您可以运行测试了。 请记住,NuGet存储库必须具有版本1.1.1,否则将生成错误。 有关托管的版本和可用的版本,请参考项目的NuGet页面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.