我在项目中使用的NuGet包依赖于x.y.z
的1.2.3
版本,我想测试一下NuGet包是否能与x.y.z
的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一起工作?
1条答案
按热度按时间b09cbbtk1#
NuGet是一个依赖项管理工具。默认情况下,当你将库安装到你的项目中时,它会获取任何库的最新版本。在你的例子中,你的项目安装了x.y.z的1.2.3版本,这意味着它不会像你试图指向的那样找到1.1.1版本。
要用旧版本进行测试,第一步需要从项目中卸载当前版本的包。您需要转到Package Manager Console并在项目中执行命令
Uninstall-Package x.y.z
。一旦你完成了这些,你需要安装你想要测试的x.y.z的特定版本。为此,你需要运行
Install-Package x.y.z -Version 1.1.1
。获取1.1.1版本的软件包并安装它,现在你就可以运行你的测试了。2记住NuGet仓库需要有1.1.1版本,否则会产生错误。请参阅项目NuGet页面,了解托管的可用版本。