dotnet 命令行运行 netcore1.1 的报路径错误,纠缠了一个星期了

wuball 2017-09-08 10:18:52
https://github.com/dotnet/cli/issues/7596
比如新建一个net core 1.1 mvc 项目,成功编译运行,然后正常发布成功。
发布目录为:E:\master\dotnet\WebApplication1\WebApplication1\bin\Release\PublishOutput

然后以下面两种方式运行
1: E:\> dotnet E:\master\dotnet\WebApplication1\WebApplication1\bin\Release\PublishOutput\WebApplication1.dll
2: E:\master\dotnet\WebApplication1\WebApplication1\bin\Release\PublishOutput\> dotnet WebApplication1.dll

第一个错误,直接错误为
“Error: The configuration file 'appsettings.json' was not found and is not optional. The physical path is 'E:\appsettings.json'.”
env.ContentRootPath 等各种路径输出都是 ‘E:\’,尽管可以用某种方式把 env.ContentRootPath 这些路径手动修改正确,但是治标不治本,还会有新的路径错误,比如连 View 视图的路径都会错误

第二个正常

表现为:只要不在发布目录内运行,路径都会不对(路径输出为 dotnet 命令当下执行的目录),以各种可能的关键字搜索也一直没搜到相关的解决方案

解决思路:
1:从代码层面解决
2:从系统层面解决(Windows、Linux)
3:从 dotnet cli 层面解决
...全文
1131 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
快跑稻草人 2017-09-11
  • 打赏
  • 举报
回复
有的系统不支持.net core
wuball 2017-09-08
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
dotnet 指令应该是以你目前目录为basedirectory的,你可以试下在Global里输出AppDomain.CurrentDomain.BaseDirectory,看它究竟是什么值,或者你可以在json配置里传入绝对路径试试

实际上我输出过各种获取路径的方式


就算在这里把这个路径解决了,也还会有新的路径问题出现。
  • 打赏
  • 举报
回复
dotnet 指令应该是以你目前目录为basedirectory的,你可以试下在Global里输出AppDomain.CurrentDomain.BaseDirectory,看它究竟是什么值,或者你可以在json配置里传入绝对路径试试

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧