8

介紹幾個 .NET SDK、.NET CLI 與 .NET runtime 執行時的好用環境變數

 3 years ago
source link: https://blog.miniasp.com/post/2021/09/21/Environment-variables-used-by-NET-SDK-NET-CLI-and-NET-runtime
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
介紹幾個 .NET SDK、.NET CLI 與 .NET runtime 執行時的好用環境變數

我在 Environment variables used by .NET SDK, .NET CLI, and .NET runtime 這篇文章中看到幾個很有機會用到的環境變數設定,有些在容器中常用,有些在 CI 的時候常用,我覺得先整理起來,以後有機會就可以用上!

  • DOTNET_ROOT

    當你安裝 .NET SDK 到系統層級的時候,這個環境變數沒啥用處,因為有預設值。Windows 預設路徑在 C:\Program Files\dotnet,而 Linux 與 macOS 預設路徑在 /usr/share/dotnet

    但是當你安裝在使用者層級的時候,這個環境變數就非常重要,沒有這個很容易會導致程式無法執行,像我在 Linux 環境下安裝 .NET SDK 就不太喜歡安裝到系統層級,所以我就會在 ~/.profile 特別加入 DOTNET_ROOT 環境變數設定,指向到 ~/dotnet 資料夾!

  • NUGET_PACKAGES

    由於本機的 NuGet 套件快取,主要跟「使用者」有關,所以快取的目錄都是個人化的。

    Windows 的預設路徑為 %userprofile%\.nuget\packages,且不太常改,除非你的 C 槽快滿了,就可以透過調整這個環境變數來換掉預設的 NuGet 快取資料夾路徑。

    Linux 與 macOS 的預設路徑為 ~/.nuget/packages,通常也不太需要修改。

  • DOTNET_NOLOGO

    當你在剛安裝好 .NET SDK/Runtime 的時候,第一次執行 dotnet 命令,就會出現「第一次執行的相關說明」,而且只會出現一次,所以在 CI 的時候出現這個訊息就很沒意義,建議設定為 1 即可,設定完成後就不會再次出現這類訊息。

    請注意: 這個環境變數在 .NET Core 3.x 的時候,環境變數的名稱是 DOTNET_SKIP_FIRST_TIME_EXPERIENCE 喔,是從 .NET 5 才改為 DOTNET_NOLOGO 環境變數名稱的!

  • DOTNET_CLI_TELEMETRY_OPTOUT

    .NET SDK/Runtime 預設會啟用 Telemetry (遙測) 機制,分析一般人使用 .NET CLI 的基礎統計資訊,許多公司也會特別關閉這類遙測訊息,以確保資訊安全。我通常會在 CI 或程式跑在容器時關閉這個機制,因此建議設定為 1 即可。

  • DOTNET_ROLL_FORWARD

    決定你要如何選擇 .NET SDK 版本,這部分講解過於複雜,建議先閱讀我之前的 使用 global.json 精準的選擇 .NET SDK 版本 文章之後,再來做設定。

    基本上你可以設定的值可以是:patch, feature, minor, major, latestPatch, latestFeature, latestMinor, latestMajor, disable

  • DOTNET_ROLL_FORWARD_TO_PRERELEASE

    決定你要如何選擇 .NET SDK 版本,這部分講解過於複雜,建議先閱讀我之前的 使用 global.json 精準的選擇 .NET SDK 版本 文章之後,再來做設定。

    這個預設值為 0 (Disabled),你也可以設定為 1 來讓 .NET SDK/Runtime 選用 Prerelease 版本。

  • DOTNET_CLI_UI_LANGUAGE

    可以設定 .NET CLI 命令列環境的顯示語言版本,預設為 en-us 英文,但如果你的電腦意外顯示成中文,就可以設定這個環境變數來決定 dotnet 命令執行時選用的語言翻譯。

    設定值為 zh-tw 可以顯示正體中文,使用 en-us 就可以強迫顯示英文。

  • DOTNET_BUNDLE_EXTRACT_BASE_DIR

    .NET Core 在部署的時候,可以用以下命令發行成單一檔案,大幅簡化日後部署的難度。

    dotnet publish -r win10-x64 -p:PublishSingleFile=true
    

    從 .NET Core 3.0 開始就有這個功能,不過這個功能非常陽春,他骨子裡其實是把要部署的幾百個檔案壓縮成一個檔案而已,執行的時候其實還是需要先「解壓縮」到一個暫存目錄才能跑起來的,而這個暫存目錄非常的隱蔽不好找,久而久之可能會大量耗用你的硬碟空間!

    如果你想自行決定解壓縮的路徑,可以設定這組環境變數! 👍

其他環境變數應該就很少用了,我自己也沒用過,更想不太到使用情境,有興趣看完整版可以參考以下相關連結!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK