Below you will find pages that utilize the taxonomy term “NuGet”
Posts
NuGet - Create and publish a package with dotnet CLI
要建立 NuGet 套件,需先確認專案檔內有設計 NuGet 套件所需之資訊,像是套件識別碼、版本、作者、公司等。
<PackageId>AppLogger</PackageId> <Version>1.0.0</Version> <Authors>your_name</Authors> <Company>your_company</Company> 然後可用 dotnet pack 命令將套件打包。
dotnet pack 或是在專案檔內加設定 GeneratePackageOnBuild,讓專案在建置時自動產生。
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> 然後確定 NuGet 帳號已註冊且取得 API key。
再調用 dotnet nuget push,帶入 NuGet 套件檔的位置及 NuGet API key。
dotnet nuget push $package -k $key -s https://api.nuget.org/v3/index.json NuGet 套件即會被上傳至 NuGet server 上。
Link 使用 dotnet CLI 建立及發佈 NuGet 套件 | Microsoft Docs
read morePosts
NuGet - Can't find online packages
使用 NuGet 時,若碰到查詢線上的 NuGet 套件一直在 Loding,且透過 ‘Package Manager Console’ 下命令也無法進行套件的安裝的話。
可嘗試將 ‘%AppData%\NuGet\NuGet.config’ 刪除。
並將 Visual Studio 重啟,沒意外的話應該就會恢復正常了。
Link visual studio - Manage NugetPackage for Solution can’t find any online packages - Stack Overflow
read morePosts
NuGet - Setting up a private NuGet server
要架設一台私人的 NuGet Server,我們可以先在 Visual Studio 上開啟一個空的網頁專案。
{% img /images/posts/CreatePrivateNuGetServer/1.png %}
接著透過 NuGet 安裝 NuGet Server
{% img /images/posts/CreatePrivateNuGetServer/2.png %}
這樣一個 NuGet Server 網站就已經準備完成了,直接將之在 Visual Studio 上運行起來看看,應該可以看到 NuGet Server 實際運行起來的樣子。這邊會有一個精簡的頁面告知 NuGet Server 正在運行,並提供在 Visual Studio 上要用來設定的網址,以及怎樣發送 NuGet 套件上 NuGet Server。
{% img /images/posts/CreatePrivateNuGetServer/3.png %}
在 Visual Studio 初步的測試沒問題的話,準備將整個網站部署到 IIS 上面
{% img /images/posts/CreatePrivateNuGetServer/4.png %}
{% img /images/posts/CreatePrivateNuGetServer/5.png %}
{% img /images/posts/CreatePrivateNuGetServer/6.png %}
{% img /images/posts/CreatePrivateNuGetServer/7.png %}
記得 IIS Website 的 Application pool 這邊要設定為使用 .
read morePosts
NuGet - Reinstalling Packages
NuGet 在2.7版後開始支援重新安裝套件的功能,當碰到專案中的 NuGet 套件參考路徑錯誤,或是當專案的 .Net Framework 版本用的與 NuGet 套件用的不符時特別適用。
使用時先開啟 Package Manager Console 工具視窗,在裡面輸入命令:
Update-Package -reinstall NuGet 就會幫你重新加入所有使用到的套件。
若要指定重新安裝特定套件,可在命令後面帶上 Package
Update-Package -reinstall [Package Name] 像是要指定重新安裝 Log4Net 就可以輸入命令:
Update-Package -reinstall Log4Net {% img /images/posts/NuGetReinstallingPackages/1.png %}
若是要指定重裝特定專案內的套件,可像下面這樣加入 Project 參數,並帶上專案的名稱:
Update-Package -reinstall [Package Name] -project [Project Name] 若是要升級專案套件,用排除相依套件的方式下去重新安裝,可加入 IgnoreDependencice 參數:
Update-Package -reinstall [Package Name] -IgnoreDependencice Link Reinstalling Packages and its Pitfalls
read morePosts
NuGet - Local cache source
在安裝 NuGet 套件時,NuGet 會將使用到的 Package 存放起來以備後續重覆安裝時使用。存放的套件若有需要,可開啟 Visual Studio 的 Options 對話框,切換到 Package Manager 下的 General 頁籤,進行 Package 的清除或是瀏覽。
{% img /images/posts/NuGetLocalCacheSource/1.png %}
點選 Browse... 按鈕,可以查看 NuGet 幫我們快取了哪些 NuGet 套件。
{% img /images/posts/NuGetLocalCacheSource/2.png %}
這邊我們將該目錄位置複製下來,再次回到 Options 對話框。這次切到 Package Manager 下的 Package Sources 頁籤,在這邊添加一個 Source 。Source 位置指到我們剛剛所複製的位置,也就是 NuGet 套件快取所存放的位置。
{% img /images/posts/NuGetLocalCacheSource/3.png %}
設定好後按下 OK 按鈕將 Options 對話框關閉。接著開啟 Manage NuGet Packages 對話框,左側 Source選用剛剛我們所新加的 Source ,我們可以看到所有快取的 NuGet 套件,這代表著我們可以在此使用快取的 NuGet 套件進行安裝,即使此時網路無法連至 NuGet Server。
{% img /images/posts/NuGetLocalCacheSource/4.
read morePosts
NuGet - Package restore
使用 NuGet 安裝套件,使用到的 Nuget 套件資訊會被記載在 packages.config 檔案內,所以這些 Nuget 套件是可以被重新安裝復原的。因此一般在上版控時,會習慣性將這些套件排除 Commit ,待從版控 Pull 下來時再行 Nuget 套件的復原。
要做 Nuget 套件的復原,以前我們會在 Visual Studio 的方案上按下滑鼠右鍵,在彈出的滑鼠右鍵快顯選單中,按下 Enable NuGet Package Restore 這個滑鼠右鍵選單選項。點選下去,會針對專案檔做些修改,並產生一個名為 .nuget 的方案目錄,裡面會有 Nuget.config、Nuget.target、以及 Nuget.exe 這幾個檔案,此時再次建置就會將遺失的 Nuget 套件復原。
{% img /images/posts/RestoreNugetPackage/1.png %}
這邊這個動作產生的 Nuget.config 內容會像下面這樣 該設定會告知一些版控系統(如 TFS)要對 Nuget 套件進行忽略的動作。
不過這是舊的設定方式,若使用新版,不用做任何動作,系統就會自動處理還原的動作。 預設在 Options 視窗這邊會將 Allow NuGet to download missing packages 以及 Automatically check for missing packages during build in Visual Studio 這兩個選項勾起,建置時會自動將遺失的 Nuget 套件復原。
{% img /images/posts/RestoreNugetPackage/2.
read more