.net 如何测试NuGet软件包是否可以与其依赖项的较低版本一起工作?

kh212irz  于 2022-11-26  发布在  .NET
关注(0)|答案(1)|浏览(145)

我在项目中使用的NuGet包依赖于x.y.z1.2.3版本,我想测试一下NuGet包是否能与x.y.z1.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一起工作?

b09cbbtk

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页面,了解托管的可用版本。

相关问题