DNX451 与 DNXCORE50 获取当前应用程序目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DNX451 与 DNXCORE50 获取当前应用程序目录相关的知识,希望对你有一定的参考价值。

在使用文件上传、日志、等需要用到当前程序所在目录时,通常我们会使用:AppDomain.CurrentDomain.BaseDirectory
现在由于我们为了跑 DNX451 和 DNXCORE50 再用上面的代码获取会得到类似如下的路径:

c:/Users/Jason/.dnx/runtimes/dnx-clr-win-x64.1.0.0-rc1-update1/bin/

为了兼容 DNX451(.NET Framework) 和 DNXCORE50 (.NET Core)

请用如下代码:

public string ApplicationDirectory
{
    get
    {
#if DNX451
        return AppDomain.CurrentDomain.GetData("APP_CONTEXT_BASE_DIRECTORY").ToString();
#endif

#if DNXCORE50
        return AppContext.BaseDirectory;
#endif
    }
}

其中 AppContext 是 .NET Core 新增的类。

请见:https://github.com/dotnet/corefx/issues/2670

以上是关于DNX451 与 DNXCORE50 获取当前应用程序目录的主要内容,如果未能解决你的问题,请参考以下文章

dnxcore50可以引用针对.net4.5编译的nuget包吗

为啥默认的 mvc6 模板针对多个 DNX 版本?

dnx451 RC1 InMemorySymmetricSecurityKey 发生了啥?

asp.net dnxcore50 按文件路径加载程序集

为预处理器指令赋值

找不到 DNX 运行时 dnx-clr-win-x86.1.0.0-beta-001598