簡體   English   中英

Nuget 包未在 Visual Studio 中更新

[英]Nuget package not updating in Visual Studio

我正在創建一個 nuget 包,其中包含一些 dll。 在這個包的第一次迭代之后,我的團隊負責人要求我添加另一個 dll。 我將它添加到 nuspec 文件中,從服務器中刪除舊包,然后推送更新的包。 我進入服務器並驗證新添加的 dll 是否存在於 nuget 包中(即我解壓了 nuget 包並檢查其內容)。

到目前為止,一切看起來都很好。 現在,我將新創建的包安裝到測試項目中,然后進行清理和構建。 當我檢查 bin 文件夾時,它沒有新添加的 dll。 它仍然與第一個包迭代相同的 dll 集,但在 nuget 服務器上它具有所有更新的 dll。

我已經清除了 nuget 緩存,刪除了舊包並重新應用了更改,並重新啟動了 Visual Studio,但都沒有成功。

我相信根本原因是由於我的團隊負責人設定的要求(這對包本身來說是合乎邏輯的),版本號沒有隨着每次迭代而增加。 例如,當我更新 Package-v1 時,下一次更新仍然是 Package-v1。

我該怎么做才能強制 Visual Studio 從服務器獲取最新版本? 另外,如果您知道,我想知道為什么會發生這種情況。

如何強制Visual Studio從服務器獲取最新版本? 另外,如果您知道,我想知道為什么會這樣。

出現此問題的原因是nuget始終首先使用nuget緩存或global-packages文件夾,以避免下載計算機上已經存在的軟件包,從而提高了安裝,更新和還原操作的性能。

因此,要解決此問題,我們應該找出nuget緩存並將其刪除。 它取決於nuget包管理類型以及nuget.config文件中的repositoryPath / globalPackagesFolder設置。

如果您使用nuget軟件包,則管理類型為packages.config

默認軟件包緩存位於解決方案文件夾的\\packages文件夾中,您可以在\\packages文件夾中檢查該軟件包。 如果沒有,請檢查是否有任何具有以下設置的nuget.config

如果是,則程序包緩存將保存在新文件夾YourCustomFolder ,從該文件夾中刪除該程序包。

如果您nuget包管理類型為packagereference

默認的程序包緩存在全局程序包文件夾中:

C:\Users\<UserName>\.nuget\packages

您可以刪除該文件夾中的軟件包,如果無法從該全局Packages文件夾中找到該軟件包,請檢查是否有任何具有以下設置的nuget.config

<add key="globalPackagesFolder" value="YourCustomFolder" />

如果是,請從新文件夾中刪除軟件包。

希望這可以幫助。

我遇到了這個問題,但https://api.nuget.org/v3/index.json能夠在瀏覽器中打開,而不是通過 Visual Studio 我使用的https://www.nartac.com/Products/IISCrypto/單擊最佳實踐,它再次起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM