本文適用於. ✔️ NET Core 2.1 SDK 和更新版本。
.NET 工具是包含主控台應用程式的特殊 NuGet 套件。 您可以透過下列方式在電腦上安裝工具:
作為全域工具。
工具二進位檔會安裝在新增至PATH環境變數的預設目錄中。 您可以從電腦上的任何目錄叫用此工具,而不指定其位置。 機器上所有目錄都會使用一個工具版本。
作為自定義位置中的全域工具(也稱為工具路徑工具)。
工具二進位檔會安裝在您指定的位置。 您可以從安裝目錄叫用工具,方法是提供目錄的命令名稱,或將目錄新增至PATH環境變數。 機器上所有目錄都會使用一個工具版本。
作為本機工具(適用於 .NET Core SDK 3.0 和更新版本)。
工具二進位檔會安裝在預設目錄中。 您可以從安裝目錄或任何其子目錄叫用此工具。 不同的目錄可以使用相同工具的不同版本。
.NET CLI 會使用指令清單檔來追蹤安裝為目錄本機的工具。 當指令清單檔儲存在原始程式碼存放庫的根目錄中時,參與者可以複製存放庫並叫用單一 .NET CLI 命令,以安裝指令清單檔中列出的所有工具。
這很重要
.NET 工具完全信任執行。 除非您信任作者,否則請勿安裝 .NET 工具。
如果 .NET 是透過 Snap 安裝,則 .NET 工具可能無法正常運作。
尋找工具
以下是尋找工具的一些方式:
- 使用 dotnet 工具搜尋 命令來尋找發佈至 NuGet.org 的工具。
- 使用 「.NET 工具」 套件類型篩選來搜尋 NuGet 網站。 如需詳細資訊,請參閱尋找及選擇套件。
- 請參閱 ASP.NET Core 小組在 dotnet/aspnetcore GitHub 存放庫的工具目錄中建立的工具原始程式碼。
- 瞭解 .NET 診斷工具的診斷工具。
檢查作者和統計數據
.NET 工具可能很強大,因為它們完全信任執行,而全域工具會新增至PATH環境變數。 請勿從您不信任的人員下載工具。
如果此工具裝載在 NuGet 上,您可以藉由搜尋工具來檢查作者和統計數據。
安裝全域工具
若要將工具安裝為全域工具,請使用 -g--global 或 選項,如下列範例所示:
dotnet tool install -g dotnetsay
輸出會顯示用來叫用工具和已安裝版本的命令,類似下列範例:
You can invoke the tool using the following command: dotnetsay
Tool 'dotnetsay' (version '2.1.4') was successfully installed.
備註
根據預設,要安裝的 .NET 二進位檔架構代表目前執行的 OS 架構。 若要指定不同的 OS 架構,請參閱 dotnet tool install, --arch option。
工具二進位檔的預設位置取決於作系統:
| 作業系統 | 路徑 |
|---|---|
| Linux/macOS | $HOME/.dotnet/tools |
| 窗戶 | %USERPROFILE%\.dotnet\tools |
第一次執行 SDK 時,這個位置會新增至用戶的路徑。 因此,可以從任何目錄叫用全域工具,而不需要指定工具位置。
工具存取是使用者特定的,而不是計算機全域。 全域工具僅適用於安裝此工具的使用者。
在自訂位置安裝全域工具
若要將工具安裝為自定義位置中的全域工具,請使用 --tool-pathdotnet 工具安裝的選項,如下列範例所示:
在 Windows 上:
dotnet tool install dotnetsay --tool-path c:\dotnet-tools
在 Linux 或 macOS 上:
dotnet tool install dotnetsay --tool-path ~/bin
.NET SDK 不會自動將此位置新增至PATH環境變數。 若要 叫用工具路徑工具,您必須使用下列其中一種方法來確保命令可供使用:
- 將安裝目錄新增至PATH環境變數。
- 當您叫用此工具時,請指定工具的完整路徑。
- 從安裝目錄中叫用此工具。
安裝本機工具
適用於 .NET Core 3.0 SDK 和更新版本。
如果您想要只安裝本機存取的工具(針對目前的目錄和子目錄),您必須將工具新增至工具指令清單檔。 若要建立工具指令清單檔,請執行 dotnet new tool-manifest 命令:
dotnet new tool-manifest
此命令會在 .config 目錄下建立名為 dotnet-tools.json 的指令清單檔案。 若要將本機工具新增至指令清單檔,請使用 dotnet tool install 命令並 省略--global 和 --tool-path 選項,如下列範例所示:
警告
請確定工具指令清單檔儲存在受控制的位置。 .NET CLI 會根據工具指令清單的內容啟動本機工具 dotnet tool run 。 如果指令清單是由不受信任的合作物件修改,可能會導致 CLI 執行惡意代碼。
dotnet tool install dotnetsay
命令輸出會顯示新安裝工具所在的指令清單檔,類似下列範例:
You can invoke the tool from this directory using the following command:
dotnet tool run dotnetsay
Tool 'dotnetsay' (version '2.1.4') was successfully installed.
Entry is added to the manifest file /home/name/botsay/.config/dotnet-tools.json.
下列範例顯示已安裝兩個本機工具的指令清單檔:
{
"version": 1,
"isRoot": true,
"tools": {
"botsay": {
"version": "1.0.0",
"commands": [
"botsay"
]
},
"dotnetsay": {
"version": "2.1.3",
"commands": [
"dotnetsay"
]
}
}
}
您通常會將本機工具新增至存放庫的根目錄。 將指令清單檔案簽入存放庫之後,從存放庫取出程式代碼的開發人員會取得最新的指令清單檔案。 若要安裝指令清單檔中列出的所有工具,請執行 dotnet tool restore 命令:
dotnet tool restore
輸出會指出已還原的工具:
Tool 'botsay' (version '1.0.0') was restored. Available commands: botsay
Tool 'dotnetsay' (version '2.1.3') was restored. Available commands: dotnetsay
Restore was successful.
安裝特定工具版本
若要安裝發行前版本或工具的特定版本,請使用 --version 選項指定版本號碼,如下列範例所示:
dotnet tool install dotnetsay --version 2.1.3
若要安裝工具的發行前版本,而不指定確切的版本號碼,請使用 --version 選項並提供通配符,如下列範例所示:
dotnet tool install --global dotnetsay --version "*-rc*"
使用工具
您用來叫用工具的命令可能與您所安裝的套件名稱不同。 若要顯示目前使用者電腦上目前安裝的所有工具,請使用 dotnet 工具清單 命令:
dotnet tool list
輸出會顯示每個工具的版本和命令,類似於下列範例:
Package Id Version Commands Manifest
-------------------------------------------------------------------------------------------
botsay 1.0.0 botsay /home/name/repository/.config/dotnet-tools.json
dotnetsay 2.1.3 dotnetsay /home/name/repository/.config/dotnet-tools.json
如上述範例所示,清單會顯示本機工具。 若要查看全域工具,請使用 --global 選項。 若要查看工具路徑工具,請使用 --tool-path 選項。
若要列出特定工具,請使用 dotnet tool list <PACKAGE_ID> 命令:
dotnet tool list dotnetsay
輸出只會在安裝此工具時列出此工具,類似下列範例:
Package Id Version Commands Manifest
-------------------------------------------------------------------------------------------
dotnetsay 2.1.3 dotnetsay /home/name/repository/.config/dotnet-tools.json
叫用全域工具
針對全域工具,請單獨使用工具命令。 例如,如果 命令是 dotnetsay 或 dotnet-doc,就是您用來叫用全域工具的命令:
dotnetsay
dotnet-doc
如果命令以前置 dotnet-詞開頭,叫用工具的替代方式是使用 dotnet 命令,並省略工具命令前置詞。 例如,如果命令是 dotnet-doc,下列命令會叫用此工具:
dotnet doc
不過,在下列案例中,您無法使用 命令來叫用 dotnet 全域工具:
- 全域工具和本機工具的前置詞
dotnet-相同。 - 您要從本機工具範圍中的目錄叫用全域工具。
在此案例中, dotnet doc 並 dotnet dotnet-doc 叫用本機工具。 若要叫用全域工具,請單獨使用 命令:
dotnet-doc
叫用工具路徑工具
若要使用 選項叫用 tool-path 所安裝的全域工具,請確定命令可用,如 本文稍早所述。
叫用本機工具
若要叫用本機工具,您必須在安裝目錄中使用 dotnet 命令。 您可以使用長表單 (dotnet tool run <COMMAND_NAME>) 或簡短表單 (dotnet <COMMAND_NAME>),如下列範例所示:
dotnet tool run dotnetsay
dotnet dotnetsay
如果命令前面加上 dotnet-,您可以在叫用工具時包含或省略前置詞。 例如,如果 命令是 dotnet-doc,下列任何範例會叫用本機工具:
dotnet tool run dotnet-doc
dotnet dotnet-doc
dotnet doc
更新工具
更新工具牽涉到使用最新穩定版本卸載並重新安裝。 若要更新工具,請使用 dotnet tool update 命令搭配您用來安裝此工具的相同選項:
dotnet tool update --global <packagename>
dotnet tool update --tool-path <packagename>
dotnet tool update <packagename>
針對本機工具,SDK 會在目前目錄和父目錄中尋找包含套件識別碼的第一個指令清單檔。 如果任何指令清單檔案中沒有這類套件標識符,SDK 會將新專案新增至最接近的指令清單檔。
卸載工具
使用 dotnet tool uninstall 命令搭配 您用來安裝此工具的相同選項來卸載工具:
dotnet tool uninstall --global <packagename>
dotnet tool uninstall --tool-path <packagename>
dotnet tool uninstall <packagename>
針對本機工具,SDK 會在目前目錄和父目錄中尋找包含套件識別碼的第一個指令清單檔。
取得說明並進行疑難解答
如果工具無法安裝或執行,請參閱 針對 .NET 工具使用問題進行疑難解答。 您可以使用 參數來取得可用 dotnet tool 命令和參數 --help 的清單:
dotnet tool --help
若要取得工具使用指示,請輸入下列其中一個命令,或查看工具的網站:
<command> --help
dotnet <command> --help