【问题标题】:Get assembly location in CoreCLR在 CoreCLR 中获取装配位置
【发布时间】:2015-09-11 14:02:35
【问题描述】:

在 CoreCLR 下,我无法像在 .NET Framework 下那样获得程序集位置。

Location 似乎不是 Assembly 的成员,并且 Assembly 上的静态方法(例如 GetExecutingAssembly)也不见了。

获取程序集目录或有关我正在运行的程序的任何目录信息的首选方法是什么?

我已经尝试过 CoreCLR 版本:
1.0.0-beta5 coreclr x64
1.0.0-beta6 coreclr x86

【问题讨论】:

    标签: coreclr


    【解决方案1】:

    既然你提到了1.0.0-beta6,我假设你说的是 DNX。

    您可以使用IApplicationEnvironment。这将为您提供应用程序的名称和基本路径。

    Assembly.Location 会很棘手,因为您可以拥有动态编译的代码,因此程序集不在您可能期望的位置。

    【讨论】:

    • 我设置了一个 CoreCLR 控制台应用程序并找到了 IApplicationEnvironment 接口,但我找不到它的实现。还有其他东西可以让我实现该接口吗?
    • 只需将它作为参数传递给Program.cs 类的构造函数。它将由 DI 注入,如下所示:github.com/aspnet/dnx/blob/dev/src/Microsoft.Dnx.Tooling/…
    • 那行得通。谢谢! :) 我想知道框架还能注入什么。
    猜你喜欢
    • 1970-01-01
    • 2023-04-04
    • 2023-03-22
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    相关资源
    最近更新 更多