2012-10-04 53 views
4

我正在處理.net解決方案,並使用nuget進行包管理。我選擇了「啓用Nuget Package Restore」選項,以便nuget包未簽入到源代碼管理。如何在啓用包恢復時指定nuget包的位置?

在此之前,我有一個nuget.config文件與解決方案所在的位置相同,因此我使用它來指定nuget包的位置。

<settings> 
    <repositoryPath>..\Build\NuGetPackages\</repositoryPath> 
</settings> 

由於我啓用了nuget包恢復,這不再工作。我試圖更新.nuget生成文件夾中的配置文件,但這也不起作用。

那麼我哪裏出錯了,我怎麼能指定包文件夾的位置?如果您使用的是單聲道

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

或者相同的屬性,但在以下組:

回答

2

您可以your-solution\.nuget\NuGet.targets文件來改變一個屬性。

+0

感謝這一點 - 它是我正在嘗試,但沒有被選中,直到我由於某種原因重新啓動Visual Studio – amateur

4

當您啓用nuget包還原時,.nuget文件夾中有一個NuGet.Config文件。

這是顯示我的libs文件夾路徑的副本。您可以修改您的路線以符合您的路線。我認爲它比已經選定的答案更清潔。

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <solution> 
    <add key="disableSourceControlIntegration" value="true" /> 
    </solution> 
    <config> 
    <add key="repositoryPath" value="../../libs/packages" /> 
    </config> 
</configuration> 
1

你也應該看看的NuGet 2.1發佈說明http://docs.nuget.org/docs/release-notes/nuget-2.1,那裏是一個新的設置添加到nuget.config指定包文件夾位置

<configuration> 
    <config> 
    <add key=" repositoryPath" value=" C:\myteam\teampackages" /> 
    </config> 
    ... 
</configuration>