2013-11-03 272 views
1

我得出的結論是nuget不值得所有與源代碼管理和部署有關的問題。那麼我該如何擺脫它?我想要將引用的dll放入bin文件夾並按照正常方式進行配置更改。如何擺脫Nuget

+0

你是什麼意思'擺脫它'?只是不要使用它。 –

+0

對於這些類型的問題的深入研究,您可能會發現值得看看我的一位同事發表的一篇文章,這篇文章談論了在專業開發組織中使用NuGet的挑戰:https:// www .simple-talk.com/dotnet/.net-framework/taking-nuget-to-the-enterprise/ –

回答

1

我們有一個類似的問題,我可以在一定程度上看到你的觀點 - NuGet在我的解決方案級別創建的包文件夾很好,因爲它將所需的依賴項整理到單個文件夾中供該解決方案中的項目使用 - 但是,當我們的開發人員嘗試將解決方案代碼推送到源代碼控制時,它確實成爲一個問題,因爲我不想在每個解決方案中存儲EntityFramework.dll文件夾,特別是隨附的所有基本文件。 (順便說一下,我個人認爲.dll甚至不應該致力於源代碼控制!)

但是,就您關於擺脫它的問題而言,我不完全確定它被編入Visual Studio中的程度如何現在,但您可以嘗試以下更改:

在Visual Studio中,轉至工具>選項>程序包管理器>程序包源。取消選中使'NuGet官方包源代碼'可用的框。理論上講,這應該讓您的IDE無法使用NuGet API。

希望這會有所幫助。

+0

這是一個選項。你有處理Nuget的所有問題的好鏈接嗎?我一直試圖使用基本的東西,這是一個驚人的噩夢。 OAuth使用剃刀的2.0版,但最新的mvc使用3.0。我不能相信我現在是唯一有這個問題的人。 – DanScan

+0

在使用NuGet之外,有很多方法可以管理你的依賴關係,因爲對於事情來說,這對於對方而言相對較晚。我使用Maven的工具開發了一個'Ivy'系統,這些工具已經移植到Windows平臺上。要使用這個,我必須在製造商,文件名,版本號和文件類型中提供特定文件夾結構的依賴關係。這可能聽起來都是肛門,但我完全可以控制每個.dll的哪個版本包含在我的任何項目中,並且沒有任何依賴項被提交到源代碼控制。 –

1

我的團隊選擇使用NuGet進行發現(我們喜歡它),與我們的活動項目分開,並通過另一種方式管理我們的參考,以實現控制和極簡主義。這就是我們如何從這些項目中刪除的NuGet:

  • 首先,卸載在你的項目中的NuGet包(可選擇在這一點上沒有的NuGet重新添加引用,或在年底)
  • 在同一個文件夾作爲解決方案文件(.sln),可能有一個.nuget文件夾,如果該文件夾中沒有其他解決方案依賴於NuGet,則應刪除該文件夾。
  • 在每個項目文件夾中,刪除packages.config文件。如果沒有檢入源代碼控制,每個開發人員都需要從受影響的每個分支中的每個項目中刪除packages.config。
  • 在每個項目文件(.csproj),有兩條線中的PropertyGroup部分應該被刪除:

    < SolutionDir條件=「$(SolutionDir)== '' 或$(SolutionDir)== '未定義'」 > ... </SolutionDir > <RestorePackages>真正</RestorePackages >

  • 還有在每個項目文件的底部的部分(我已經看到多個在這個位置化身,所以這只是一個例子)

    < Import Project =「$(SolutionDir).nuget \ nuget.targets」Condition =「Exists('$(SolutionDir).nuget \ NuGet.targets') 「/ >

您必須與您的團隊進行協調。如果有人打開一個解決方案,其中包含在其目錄中包含packages.config文件的項目,NuGet將撤消上面的手動編輯;特別是如果您打開了自動檢查功能。