.Net Core Internal Server Error 500 while restoring NuGet packages

為了在 linux 測試,所以使用 WSL (Windows Subsystem for Linux) 的 Debain 來測試。
結果在 dotnet restore 的時候遇到 Internal Server Error 500 ,最後發現原因是專案有使用 NuGet.Config 這個設置檔案,而裡面因為在 Windows 上只需要增加自定義的 package server 就可以使用,但在 Linux 環境似乎會有問題;從 官方網站 推論是因為 Solution 有放 NuGet.Config 就會 overridden User 層級的設定檔。

解決辦法就是把官方的 package server 加入到 NuGet.Config 檔案中,並且設定把套件對應到相對應的 source

<?xml version="1.0" encoding="utf-8"?>

<configuration>
    <packageSources>
        <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
        <add key="custom-server" value="http://nuget.custom-server.net/v3/index.json" />
    </packageSources>
    
     <packageSourceMapping>
        <!-- key value for <packageSource> should match key values from <packageSources> element -->
        <packageSource key="nuget.org">
            <package pattern="*" />
        </packageSource>
        <packageSource key="custom-server">
            <package pattern="custom-server.*" />
        </packageSource>
    </packageSourceMapping>
</configuration>

然後使用 dotnet restore 的時候還需要多增加參數

dotnet restore --configfile /path-of-NuGet.Config

官方網站 給的行為模式,應該是不需要特定指定設定檔,不過不給就是會噴錯,就只好指定了。


參考:

Read more

Debug Story

Debug Story

Ref: * 寫程式不是輸出,是內化 * Vibe Story:用敘事智能為程式碼注入生命,簡化維護 這篇主要是想紀錄一下看了Ruddy 老師的文章後想做的事情,雖然通篇的重點不是在我想做的這件事,但因為Ruddy 老師的這篇文章讓我覺得以後在排除 Bug 的時候應該要做這件事才對。 以下的內容是擷取 Ruddy 老師的內容(部分修改) 1. 記錄搜尋路徑與嘗試過的假設 => 我以為是 state 沒清,但發現是 effect 未執行 2. 為錯誤進行分類,然後標註成概念 => 這是 mutable state 的副作用問題 3. 寫一段描述該段程式的情境與原則 => Vibe Story 該段程式的情境與原則可以參考一下的要點撰寫: * 場景(Context):描述程式碼的背景與需求。 * 目標(Goal):說明功能目的。 * 挑戰與迭代(Challenges &

By Mars
Claude Code Status line on Windows

Claude Code Status line on Windows

Claude Code 在大家軍備戰發布了 Status line 這個功能,讓使用者可以在 Claude Code 的輸入框下方自訂自己想要的訊息,官方提供幾個方式可以實現這功能(Bash, Node.js, Python),最後我選擇使用 Node.js。 趁著週末寫玩了一下,剛開始照著官方文件做,結果啥都沒顯示出來,接著叫 Claude Code 幫我做,他說成功了,結果還是啥都沒有...最後才發現可能是官方提供設定檔案的問題 { "statusLine": { "type": "command", "command": "~/.claude/statusline.sh", "padding": 0 // Optional:

By Mars