我在一臺設備上安裝了 UOS 系統,但是我如何在我的主開發設備上和 UOS 系統傳輸檔案?通過 dotnet tool 工具可以完成大部分的作業,當然,使用 dotnet tool 不僅做檔案傳輸,還能做很多特別強大的應用,本文就使用檔案傳輸作為例子告訴大家如何使用 dotnet tool 在多個平臺里面使用相同的一套技術和命令列作為工具
在 dotnet 里,可以制作一個 dotnet 應用,將這個應用發布到 NuGet 上,無論是外網的 NuGet 的還是自己內網搭建的都可以,然后其他小伙伴就可以通過 NuGet 下載到這個應用,這樣的應用就叫 dotnet tool 工具
使用 dotnet tool 工具的優勢在于,工具使用自己熟悉的 .NET 撰寫,其次是分發方便,畢竟咱的專案基本上都需要安裝 NuGet 包,也就是咱都是有 NuGet 源和環境的,因此可以方便在設備上利用 NuGet 獲取工具或上傳自己的工具
在開始之前,請在 UOS 上安裝必要的工具,如 dotnet 開發工具,請看 dotnet 在 UOS 國產系統上安裝 dotnet sdk 的方法
接下來咱需要使用的工具有兩個,一個是用來開啟本地檔案服務器的,另一個是用來下載檔案的
在 UOS 上有一個限制,也就是不能呼叫全域的工具,只能使用檔案夾內本地工具,這個問題我和官方說了,請看 dotnet global tool can not run in UOS system · Issue #13399 · dotnet/sdk
例如我期望在 UOS 上傳輸一個檔案到我的開發機器上?可以如何做?可以使用下面步驟
- 在 UOS 上開啟檔案服務器
- 在開發機上使用下載工具下載檔案
如果需要傳輸一個檔案夾呢?其實只需要將檔案夾壓縮就可以使用上面步驟
- 在 UOS 上將檔案夾壓縮成檔案
- 在 UOS 上開啟檔案服務器
- 在開發機上使用下載工具下載檔案
下面咱一步步來
壓縮檔案夾成檔案
這一步在 UOS 上做,可以使用自帶的 tar 工具,壓縮命令如下
tar -cvf 1.tar lindexi/
上面命令就是將 lindexi 檔案夾壓縮到 1.tar 檔案里
詳細請看 Linux tar壓縮命令:打包與解打包命令
安裝 dotnet tool 工具
在 UOS 開啟檔案服務器可以使用 dotnet-serve 工具,在開始之前需要先初始化一下工具
dotnet new tool-manifest
上面代碼將會在當前作業路徑下初始化 dotnet tool 工具
然后使用下面命令安裝 dotnet 本機檔案服務器工具
dotnet tool install dotnet-serve
安裝完成之后,可以使用下面代碼開啟檔案服務器
dotnet tool run dotnet-serve -a 0.0.0.0
而在 Windows 端開啟檔案服務器就沒有那么長的命令了,因為 Windows 下是支持全域工具的,也許后續 UOS 也會支持
在 Windows 下第一步是安裝工具,注意和 UOS 上安裝不同的是添加了 -g 表示全域安裝,全域安裝的工具,可以在任意作業路徑下才能使用,而不加上 -g的是本地安裝,只有在當前當前作業路徑下才能使用
dotnet tool install -g dotnet-serve
接著使用下面代碼開啟檔案服務器
dotnet serve -a 0.0.0.0
詳細請看 dotnet serve 一句話開啟檔案服務器 通過 HTTP 將檔案共享給其他設備
下載檔案
在 UOS 上是 Linux 系統,可以使用 wget 的工具下載檔案,而在 Windows 下可以使用 dotnetCampus.FileDownloader.Tool 工具下載檔案,這是一個完全在 GitHub 開源的專案
安裝 dotnet tool 的方法和上面安裝檔案服務器相同,在 Windows 下使用下面代碼作為全域工具安裝
dotnet tool install -g dotnetCampus.FileDownloader.Tool
安裝完成之后,可以使用下面命令下載檔案
DownloadFile -u 下載鏈接 -o 下載檔案保存路徑
在 UOS 上開啟檔案服務器,使用下面命令開啟
dotnet tool run dotnet-serve -a 0.0.0.0
再打開一個終端,使用下面命令找到 UOS 的 ip 地址
sudo ifconfig
假定在 UOS 上開啟檔案服務器的作業路徑下,有剛才壓縮好的 1.tar 檔案準備傳輸到 Windows 服務器上
先記下 UOS 的 ip 地址,和執行 dotnet serve 開啟的服務器埠,如 36867 埠,此時可以在 Windows 下使用下面命令下載 1.tar 檔案
downloadfile -u http://172.20.115.72:36867/1.tar -o 1.tar
上面代碼的 172.20.115.72 就是 UOS 設備的地址
這樣就僅通過工具完成了 UOS 到 Windows 檔案的傳輸,有趣的是,反過來也可以,使用的工具和命令也可以是相同的
更多關于下載工具請看 https://github.com/dotnet-campus/dotnetCampus.FileDownloader
也許本文的例子還不夠讓大家看到 dotnet tool 的優勢,因為 UOS 作為 Linux 系統,有大量可用的自帶的命令列工具,只是存在一個坑就是我對這些工具都是不熟悉的,而 dotnet tool 可以讓兩邊都使用相同的工具和命令
歡迎小伙伴加入 xamarin 國產 UOS 開發群: 810052083

本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可,歡迎轉載、使用、重新發布,但務必保留文章署名林德熙(包含鏈接:http://blog.csdn.net/lindexi_gd ),不得用于商業目的,基于本文修改后的作品務必以相同的許可發布,如有任何疑問,請與我聯系,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/48.html
標籤:.NET Core
