2016-07-27 46 views
1

我正在與其他團隊成員在一個大的C#項目。到目前爲止,這個項目一直是混亂的,每個人都有自己的方式讓自己的環境得到發展並運行。對於新成員(以及未來的成員),我試圖記錄並加強我們的開發過程。該項目的版本由git控制,成員正在使用VS2012,VS2015和Monodevelop。項目沒有意識到成功的Nuget包恢復後的包

我們的C#解決方案中的C#項目都有它們需要的NuGet包。我在.gitignore文件如下:

# NuGet Packages 
*.nupkg 
# Ignore the actual packages but not the config file for them 
**/packages/**/* 
!**/packages/repositories.config 
# don't ignore build/, which is used as an MSBuild target. 
!**/packages/build/ 

所以,當我從一臺機器推,然後克隆另一方面,我確實有包含在項目的解決方案,這些項目有packages.config文件,這是包含所需軟件包和版本名稱的xml文件。

這裏是我的問題是

我試圖與VS2015社區版全新的Windows 7機器克隆回購,這工作得很好。然後有一個提示恢復NuGet包。我做到了。我可以看到,包和版本的安裝位置對感興趣的項目的NuGet包管理器視圖:試圖隔離 enter image description here

enter image description here 但在我的我的項目的參考,他們似乎並沒有被安裝用較小的項目

我想,也許這是奇怪的問題,所以我關閉瞭解決方案,並開始與一個小型控制檯應用程序項目中的新小的解決方案。我在該項目中添加了舊版NUnit,並驗證了NuGet軟件包已安裝到pakcages目錄中。然後我關閉瞭解決方案,並刪除了packages目錄。當我打開解決方案時,它意識到該軟件包不在那裏,所以我試圖通過右鍵單擊軟件包菜單來執行恢復軟件包操作。這工作得很好。

所以我覺得我必須在搞砸了我大C#項目的一些其他配置。我不知道它是否在我的系統上的其他地方安裝軟件包。任何指向哪裏看或什麼配置看看會有所幫助和讚賞!

(我還沒有看到這個問題其他地方,其中包裝顯然是安裝,但該項目仍然不知道它)

更新2016年7月28日 我有一個看看nuget.config文件的解決方案,似乎有一個線有:

<add key="repositorypath" value="External\Packages" /> 

然後我發現一個目錄中相同的水平我命名External Packages解決方案文件。我想說明的是,最初設置此解決方案及其項目的人員已不在身邊。所以我刪除了該目錄和nuget.config文件。我重新啓動VS2015並運行恢復NuGet軟件包操作。這似乎是爲了恢復軟件包並創建了一個名爲packages的目錄,它們現在存儲在那裏。這現在模仿我在我嘗試重新創建這種行爲的小型項目中看到的內容。

但我仍然遇到NuGet包管理器說包已安裝但「引用」不顯示它們的問題。

所以我想知道是否有一種方法來配置VS以查看這些包存儲在引用的位置?

+1

當.NET版本不匹配時,我有時會看到相同的問題。這是一個簡單的檢查,以確保他們這樣做,我想我會通過帽子。 –

+0

Ahh ..那麼我們正在使用.NET 4.5和mono來保持跨平臺的工作,所以如果這是一個問題,那麼這會如何影響程序包恢復過程? – Jesse

+0

編輯您的問題以添加包含您的引用的.csproj文件。 –

回答

0

@RoberHarvey有正確的解決方案。問題出在我的解決方案中的項目的.csproj文件中。這是一個代碼庫的一部分,它從來沒有真正有過跟蹤軟件包的好方法,而且過去曾有失敗的嘗試去修復它。所以在我的項目文件中存在一些不一致。通過在刪除舊的nuget.config文件後卸載並重新安裝問題軟件包,可以解決此問題。