簡體   English   中英

用於TFS構建的NuGet存儲庫

[英]NuGet Respository for TFS Build

我所有的搜索都找不到清晰的答案。 我們擁有TFS 2015,並希望使用自定義的NuGet存儲庫來存儲我們的內部包。

當前,它們與TFS安裝位於同一服務器上的物理驅動器上。 但是,它經常找不到任何軟件包。

我的困惑在這里出現。 為了將此目錄用作Nuget存儲庫,我們是否需要安裝其他軟件或生成一些index.json? 文件夾中是否存在軟件包不足? 我已經看過很多關於Package Management插件(成本超過5人)或升級到TFS 2017的文章。

我的理解是否正確,僅將軟件包放在服務器可以訪問並指向的位置是不夠的?

謝謝!

更新:

根據BehemothDan在下面的評論,此問題已通過將Nuget.Server安裝為IIS中服務器上的應用程序來解決。 只需為TFS構建過程提供一個URL而不是一個目錄路徑,一切就可以很好地進行。 (將Nuget.Server指向目錄)


正如Daniel所說:“ NuGet將使用該程序包源。與TFS無關。構建系統所做的全部工作都是在命令行上運行。”

因此,您只需要設置源:

  1. 創建本地提要nuget存儲庫 ,它可以是共享文件夾,TFS可以訪問該文件夾)。
  2. 將所需的軟件包下載/復制到repo文件夾。
  3. nuget.config設置包源,或在Visual Studio中直接添加源。

因此,當您在TFS中構建時,nuget將識別源並自動還原軟件包。

您可以參考本文以了解以下內容:

創建本地NuGet存儲庫以進行離線開發


此外,TFS在TFS 2017及更高版本中引入了包管理功能。

因此,如果升級到TFS 2017或更高版本,則可以直接在TFS中管理軟件包。

有關詳細信息,請參閱VSTS和TFS中的NuGet程序包管理入門

您還可以參考本文以從TFS2017 Build發布到私有NuGet服務器

如果您的構建無法在TFS上正確運行,則意味着與本地計算機相比,您在TFS上的文件夾(或依賴項)結構不同。 在那種情況下,TFS代理試圖在TFS上編譯源,而沒有找到依賴關系。

為了將目錄用作Nuget存儲庫,您不需要安裝任何東西,但是請確保您應該了解以下幾點。 您有2種方式來引用您的軟件包:您可以使用Package引用,通過PackageReference節點,它直接在項目文件中管理NuGet依賴關系,其次,與Packages.config節點相反,它將配置保存在.config文件中。 。

在此處輸入圖片說明

最重要的是,PackageReference用於.NET Core項目,那么您要嘗試構建哪種項目?

.NET完整框架項目支持PackageReference,但當前默認為packages.config

我的建議是:-如果您正在處理.netcore項目,請使用PackageReference並打開您的解決方案,並查看所有依賴項是否指向

%SystemDrive%\\ Users \\ .nuget

為了正確編譯,TFS上應該有相同的路徑,出於優化原因,您不應將此文件夾移動到另一個文件夾,因此,如果您負責TFS監視器,則C驅動器的空間可能會成倍增長。

-如果您不使用.NetFramework,而不是Core,則應按@Andy Li-MSFT所說創建本地存儲庫。 我建議您閱讀我剛才一步一步發布的答案: https : //stackoverflow.com/a/43791395/819153

暫無
暫無

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

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