.NET Core從最先期的版本就開始支持全局工具了。若是僅僅須要在某個項目中或某個文件夾中使用特定的工具,那麼.NET Core 3.0就容許您這樣作。 shell
使用.NET Core 3.0,您能夠在特定的文件夾下安裝「本地」工具,它的做用範圍僅限於該文件夾及其子文件夾。 json
若是我想在一個項目中使用Cake Build,那麼在.NET Core 3.0以前,我能夠這樣作,把Cake.Tool安裝爲全局的工具: 緩存
可是若是多個項目須要使用不一樣版本的 Cake.Tool,那麼在.NET Core 3.0以前,咱們只能這麼作: 工具
而後這樣用: ui
可是這樣也有幾個缺點: spa
這個命令比較難記,略長。 rest
沒有這個項目中所安裝工具的清單。 orm
若是同一個版本的工具安裝在n個地方,那麼就有n個拷貝。 xml
因爲工具文件的後綴名可能不同,因此啓動工具的命令多是和平臺有關的。 開發
打開Visual Studio的Package Manager Console(Powershell或者其它終端也能夠),在安裝本地工具以前,首先要建立一個本地工具清單文件,使用命令dotnet new tool-manifest:
而後進入項目所在目錄,在.config文件夾下面能夠看到名爲dotnet-tools.json這個文件:
而後我在這個項目裏面安裝Cake.Tool這個工具,使用dotnet tool install xxx便可:
而後再看dotnet-tools.json文件:
能夠看到cake.tool顯示在裏面了。
若是Cake.Tool是全局安裝的話,那麼我直接執行cake --help就應該有結果:
可是,很顯然這樣作不行。
因爲Cake.Tool是本地安裝的,運行本地工具須要在前邊加上dotnet:
這樣就能夠了。
其實上面那種寫法是下面寫法的簡寫:
也能夠這樣寫:
此外,在工具安裝目錄的子目錄裏也可使用這個工具。
咱們能夠把.config目錄提交到源碼管理,這樣的話,其它開發者也可使用安裝的本地工具了。這些工具實際是安裝在全局nuget包緩存裏,若是第一次運行的時候沒有安裝工具的包,那麼你須要先執行 dotnet tool restore 進行還原,而後纔可使用這些本地工具。