从 Rider/ReSharper 中的 .net 核心解决方案中的所有程序集中检索类型

问题描述

我们在 .NET 核心测试项目中使用此代码获取所有相关(解决方案中)程序集,我们可以使用这些程序集获取所有类型:

List<Assembly> assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.GetName().FullName.StartsWith("Company.Name")).ToList();

这可以通过 dotnet test 或 Visual Studio 测试资源管理器在 Windows 上运行,但是 在 Mac 上的rider 或 resharper 测试资源管理器上它只返回测试程序集,只包含测试项目中指定的类型。

它已更改为在 Assembly.GetReferencedAssemblies() 上递归,这可以正常工作。我想知道:两个平台测试运行器之间有什么区别,是否有比 Assembly.GetReferencedAssemblies() 更简单的解决方案?

解决方法

The assemblies aren't loaded by design in order to match the regular dotnet assembly loading behaviour