【发布时间】:2019-08-08 06:21:44
【问题描述】:
我们有一个 API 真实应用程序,它运行以下代码来获取程序集目录。
Assembly.GetEntryAssembly().Location
Result:
C:\\OriginalApplicationAPI\\bin\\Debug\\netcoreapp2.2
现在我们正在运行一个集成 Xunit 项目,该项目正在运行原始项目的启动、应用程序设置等。
从集成测试项目渲染运行此代码,
C:\\Users\\..\\.nuget\\packages\\microsoft.testplatform.testhost\\15.9.0\\lib\\netstandard1.5"
如何从测试项目中引用 OriginalApplicationAPI 程序集位置?是通过命名空间还是项目引用?
谢谢,
【问题讨论】:
-
使用
Assembly.GetExecutingAssembly().Location应该会为您提供正确的程序集路径。 -
如果它没有执行呢?我只需要通过项目引用或命名空间来引用其他程序集
-
嗯 :-) 你需要知道程序集中的类型,让我们假设
App.MyClass是在程序集中定义的。您可以拨打Assembly.GetAssembly(typeof(App.MyClass)).Location。您不能在namespace上执行此操作,因为命名空间可以存在于多个程序集中。您需要一个实际的类型来获得正确的程序集。 -
嗨@SimplyGed 随时写答案,我可以发送积分,谢谢!
标签: c# asp.net-core .net-core xunit