c# - 网络核心: Find Application Assembly Location from Integration Test

标签 c# asp.net-core .net-core xunit

我们有一个 API Real 应用程序,它运行以下代码来获取程序集目录。

Assembly.GetEntryAssembly().Location

Result:
C:\\OriginalApplicationAPI\\bin\\Debug\\netcoreapp2.2

现在我们正在运行一个 Integration Xunit 项目,该项目正在运行原始项目中的启动、应用程序设置等。

从集成测试项目渲染运行此代码,

C:\\Users\\..\\.nuget\\packages\\microsoft.testplatform.testhost\\15.9.0\\lib\\netstandard1.5"

如何从测试项目引用 OriginalApplicationAPI 程序集位置?是通过命名空间还是项目引用?

谢谢

最佳答案

您需要知道程序集中的类型。

假设 App.MyClass 在程序集中定义。您可以使用反射来获取包含该类型的程序集的位置:

Assembly.GetAssembly(typeof(App.MyClass)).Location. 

您无法使用命名空间来执行此操作,因为命名空间可以跨多个程序集存在。

或者利用

Assembly.GetExecutingAssembly().Location

关于c# - 网络核心: Find Application Assembly Location from Integration Test,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57384809/

相关文章:

azure - 未下载用于 Azure 构建的 Nuget 包

c# - 在 docker 中连接到 MySQL 实例时出错

c# - 添加EventHandler += EventHandler有什么作用?

c# - 如何在 C# 中将 Dictionary<string, object> 转换为 Dictionary<string, string>

c# - 在 asp.net core 中使用 NVarChar

c# - asp.net core 2.0 发布生成大量 DLL

asp.net - 如何过滤 Linux 上托管的 ASPNET 核心应用程序的 Journalctl 日志错误

asp.net-core-mvc - 无法生成deps.json以启用迁移

c# - 需要有关 RSS Feed 和 wordpress 的帮助

c# - 使用 Entity Framework 、POCO 和 MySQL 的最佳教程