2016-10-28 80 views
4

檢索信息我試圖運行:的NuGet包 - 無法從遠程源

A \ B \ C \項目

nuget pack project.csproj 

但由於項目的目錄結構

它一直說:

NuGet.Protocol.Core.Types.FatalProtocolException:無法從遠程源'A \ B \ Packages'檢索信息,它真的應該是'A \ Packages'。如何在建立依賴關係時更改NuGet查找軟件包的位置。

我已經嘗試在項目目錄以及解決方案(在.nuget)中放置一個NuGet.config。我把它添加到文件中:

<config> 
    <add key="repositoryPath" value="A\Packages" /> 
</config> 

在這兩個地方,它沒有區別(它總是說A \ B \ Packages)。

回答

4

錯誤有點奇怪,但是是already mentioned here

它看起來像NuGet在默認情況下期望與.csproj文件位於同一位置的包文件夾。

我還有一個自定義項目結構,其中.sln位於另一個文件夾中。

至少我努力解決此通過創建這樣一個符號鏈接(CMD打開具有管理員權限):

cd <your .csproj location> 
mklink /d packages "C:\path\to\actual\packages" 

這樣的NuGet認爲包文件夾存在,應該能夠建立你的包。

1

該問題可能是由nuget查找軟件包文件夾的方式引起的。它通過遍歷目錄結構來查找.sln文件。如果在你的情況下,目錄A \ B包含一個.sln文件,那麼nuget會假定packages文件夾也會在那裏。

0

在OSX上,您可以添加一個符號鏈接來誘騙nuget進入構建。

運行在項目文件夾下做出的NuGet從具有包文件夾的父(解決方案)目錄閱讀:

ln -s ../packages packages 
3

對我來說,工作在溶液中添加文件夾NuGet.config。