我正在为.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)?