Jason's Blog

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

posted @ 2016-04-04 00:59  jasonsoop  阅读(348)  评论(0编辑  收藏  举报