作者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://www.ptt.cc/bbs/C_Sharp/M.1492792002.A.905.html
→ IKAFIRE: Property裡面有個copy to output dir之類的選項 04/22 02:17
→ IKAFIRE: 選了之後該檔案就會在build時被複製到bin裡面了 04/22 02:17
→ 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