从PackageReference删除程序集版本详细信息

时间:2019-07-16 01:12:46

标签: c# csproj dynamic-loading assemblybinding packagereference

我正在为.NET软件包编写性能测试。我需要将当前版本的性能与最新版本的性能进行比较。测试项目是.NET SDK格式的测试项目。

在构建时,使用基准版本来开发测试,并通过.csproj中的PackageReference进行引用。

在运行时,我试图在访问软件包中的任何类型之前使用Assembly.LoadFrom强制加载特定版本。

不幸的是,似乎PackageReference元素使测试程序集引用了特定版本的软件包:尽管我使用Assembly.LoadFrom加载了新版本,但当我接触到其中一个软件包类时,从应用程序目录加载了它的另一个实例,该实例与NuGet中的版本匹配。

当我使用GetReferencedAssemblies中的PerformanceTests分析运行时的依赖关系时,我得到了

  

PerformanceTests,版本= 1.0.0.0,文化=中性,PublicKeyToken =空-> ReferencedPackageAssemblyName,版本= 2.3.0.0,文化=中性,PublicKeyToken =空

证实了我的理论。新版本的版本为2.4.x.x

所以问题是:如何告诉PackageReference元素不要从程序包中引用程序集的特定版本,而让它使用我手动预加载的程序集?

或者,是否有更好的设置来在新版本和基准上运行测试实验(请在评论中回答plz)?

0 个答案:

没有答案