作者aoksc (重出江湖)
看板C_Sharp
标题[问题] 在console底下读取json档案的方式
时间Sat Apr 22 00:26:39 2017
请问各位
如果我的console专案里面
要读取同一个专案里面的appsettings.json
请要问怎麽写才能读的到
网路上包含官方的写法都是
Nuget安装Microsoft.Extensions.Configuration.Json
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json");
Configuration = builder.Build();
但我遇到的问题是Directory.GetCurrentDirectory()他的路径
在执行的时候他的CurrentDirectory其实是在/bin/Debug这个资料夹中
但在编译的时候appsettings.json并不会自动被包进来
所以最後就会找不到这个档案出错
网路上看到的几乎都是web startup的解法
但是console本身并没有环境变数这些东西injection进来
请问各位能否指点一下这个问题怎麽解呢?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.233.159.254
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1492792002.A.905.html
1F:→ IKAFIRE: Property里面有个copy to output dir之类的选项 04/22 02:17
2F:→ IKAFIRE: 选了之後该档案就会在build时被复制到bin里面了 04/22 02:17
3F:→ IKAFIRE: 另外console application怎麽会没有环境变数 04/22 02:20
谢谢解惑
最後找的结法是在*.csproj这个档案里面
加上
<ItemGroup>
<Content Include="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
这样编译时就会帮你把该档案一起放到编译完的专案中
※ 编辑: aoksc (118.233.159.254), 04/22/2017 18:46:45