停用 C# 編譯時特定的警告

之前筆記 NuGet restore error NU1803 紀錄了在某次 build fail 後意外發現 Microsoft NuGet team 的 HTTPS everywhere 計劃,接著筆記 NuGet 設定 Insecure HTTP source 是根據 Microsoft NuGet team 的新計劃:HTTPS Everywhere Update 嘗試了從 NuGet 6.8 開始允許啟用 Insecure NuGet source,但 macOS 上似乎還是有問題實測下仍會拋出 NU1803 Warn,所以這次筆記來記錄如何停用 C# 編譯時特定的警告。

基本環境說明

  1. macOS Sonoma 14.1.1 (Apple M2 Pro)
  2. .NET SDK 8.0.100
  3. NuGet 6.8.0.122

    dotnet nuget --version

  4. JetBrains Rider 2023.2.3

  5. 透過 nexus 來模擬 NuGet HTTP source

    docker run -d -p 8081:8081 --name nexus sonatype/nexus3

設定方式:設定專案 NoWarn 屬性

  1. 方法一:修改 .csproj

    <NoWarn>$(NoWarn);NU1803</NoWarn>
    
  2. 方法二:build 時加上 /nowarn:NU1803

    dotnet build /nowarn:NU1803
    

    3cli

心得

官網上中英文的說明因為翻譯造成意思不同很常見,但直接少一段是怎麼回事XD

參考資料

  1. NuGet restore error NU1803
  2. HTTPS everywhere
  3. NuGet 設定 Insecure HTTP source
  4. HTTPS Everywhere Update
  5. [DCR]: HTTPS transition warning NU1803 cannot be suppressed
  6. C# Compiler Options to report errors and warnings
  7. 用於報告錯誤和警告的 C# 編譯器選項