2012-12-30 15 views
3

恢復我放在nuget.config文件中,指定所有的Nu​​Get包應該去爲我所有的解決方案,我的項目的根文件夾。我正在做對嗎? NuGet包與包集中夾

以下是文件:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <config> 
    <add key="repositoryPath" value="D:\Projects\Development\NuGet Packages" /> 
    </config> 
</configuration> 

我也已經啓用NuGet包我所有的解決方案,恢復

當我第一次對此進行設置,將nuget.config文件被忽略 - 所有的Nu​​Get包正在放置在解決方案文件夾中的「包」的文件夾。我試過多次刪除這個文件夾,但總是NuGet會重新創建它並用軟件包填充它。

經過大量的試驗和錯誤,我偶然發現了「NuGet.targets」中的<PackagesDir>元素,並注意到註釋它最終允許將軟件包放置在我的項目根目錄下的正確文件夾中。

下面是從NuGet.targets相關線路

<PackagesDir>$([System.IO.Path]::Combine($(SolutionDir), "packages"))</PackagesDir> 

我的問題是根本就不管在NuGet.targets文件註釋掉PackagesDir元素是預期的方法來讓我的nuget.config文件時應遵循或如果我錯過了一個更明顯的解決方案。

回答

3

有在玩兩件事情在你的問題:

  • 哪裏的NuGet店包?在打開的項目(S)/解決方案

關於第一個

  • NuGet包還原:設置在nuget.config文件repositoryPath關鍵是要指導的NuGet在不同的提取程序包的正確做法文件夾從默認。只要開發人員將項目引用添加到項目中,就可以使用此設置。

    對於NuGet包恢復,此設置將被在NuGet.targets中找到的設置覆蓋。在構建解決方案時恢復軟件包時使用此設置。

    如果要使用程序包恢復自定義路徑,則必須同時指定兩者。第一個爲你的開發者,第二個爲包恢復。

  • +0

    謝謝你的安慰。我會一如既往地繼續努力。 – devuxer

    +0

    Gah !!!我只是浪費了很多時間試圖整理出來......爲什麼NuGet想讓你配置兩次這個值?我真的希望2.1發行說明會指出... – AllenSanborn