我正在使用Visual Studio 2017中的Xamarin.Forms PCL移動應用程序,使用project.json進行軟件包管理(我沒有使用PackageReference,因爲Visual Studio 2017是必需的並且我們的一些團隊仍在使用Visual Studio 2015)。我有解決方案內的多個項目,和我有項目的多個分支,像這樣:NuGet軟件包安裝到錯誤的文件夾
MobileApp/
packages/ <<--- (I want nuget packages to be installed here)
Branches/
DevBranchSolution/
MobileApp.sln
nuget.config
ProjectA/
ProjectB/
我想我所有的(項目/解決方案/分支機構),以便能夠從一個位置參考包,所以您會注意到我在MobileApp文件夾的根級別添加了packages文件夾。我有每個解決方案,看起來像一個nuget.config文件:
nuget.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="..\..\packages" />
</config>
<packageSources>
<clear />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="CustomPackagesLocation" value="..\..\packages" />
</packageSources>
<disabledPackageSources />
</configuration>
在Visual Studio中的解決方案時,我點擊右鍵,點擊「管理的NuGet軟件包的解決方案...「,並安裝一個軟件包(例如Newtonsoft.Json),我希望它會在我的MobileApp/packages/
文件夾中安裝這些軟件包文件,這是我在解決方案的nuget.config中設置的位置。但事實並非如此。相反,這些文件被放入全局NuGet包位置,即%USERPROFILE%\.nuget\packages
。
爲什麼?我的nuget.config文件不應該重寫那個嗎?我已經驗證過,當我進入程序包管理器設置時,CustomPackagesLocation的位置是正確的,但顯然,repositoryPath設置似乎不影響任何內容。
我還注意到,在project.json.lock
和Project.nuget.targets
文件中,包文件夾被設置爲全局NuGet包位置(%USERPROFILE%/.nuget/packages
之一)。爲什麼?它從哪裏拉這個值?
您的項目是否使用PackageReferences? –
我希望 - 不幸的是,並非我們所有的團隊都在VS2015上,所以我不想讓VS2017成爲一項需求。我正在使用project.json。 – jbyrd
你有沒有試過這個:https://stackoverflow.com/questions/7676640/how-do-i-specify-the-directory-where-nuget-packages-are-installed 或者這個:https:// stackoverflow。 com/questions/4092759/is-it-it-possible-change-the-location-of-packages-for-nuget – BikerDude