[VS] 多個 Solution 有共同的 NuGet Packages 資料夾

  • 3569
  • 0
  • 2016-02-15

多個 Solution 有共同的 NuGet Packages 資料夾

又是一個因為碰到問題才去找方式解決的,不過這只是目前使用NuGet會遇到問題的一個情境

我的情境是 我有不同的Solution,但是這些Solution會Include到一些相同的project

預設的情況下NuGet Packages會放在與Solution檔案相同的目錄下,但是此時就會遇到一個問題,因為NuGet會在project中加入HintPath的屬 性,就是指定此project要用的NuGet Pakcage的dll路徑在那邊,所以你開A Solution可以Compile,但不代表B Solution就可以Compile,因為此時project中的HintPath是指向A Solution的目錄下,這時候還滿囧的,當然最簡單的解法就是先compile A Soution再打開B Solution compile

這樣是滿蠢的=.= 用了幾天受不了,所以決心去找解法,結果其實解法是滿簡單的

經過一番搜尋,根據官方的文章
這篇:https://docs.nuget.org/consume/nuget-config-file
還有這篇:https://docs.nuget.org/consume/nuget-config-settings

NuGet會有一個預設 Global NuGet.config檔案,放在 %USER%\AppData\Roaming\NuGet 的路徑下,裡面只有簡單的一個指向預設NuGet Server API的位置。

但其實自己的Solution下面一樣可以有自己的NuGet.config檔案,所以只要在自己的Solution下面新增一個NuGet.config檔案,並且新增一個
<config> <add key="repositorypath" value="你要存放的路徑" /> </config>
這樣的Session,然後把要用共同NuGet packages目錄的solution通通放一個這樣的檔案就搞定啦!

PS:建議路徑可以用相對路徑喔!