簡體   English   中英

VS解決方案使用git子模塊時如何解析nuget包

[英]How to resolve nuget packages when using git submodules for VS Solution

我有兩個存儲庫。 第一個是大型集成存儲庫,其中包含許多項目。 第二個是相對較小的解決方案,其中包含多個項目,這些項目正在分別開發,然后集成到第一個解決方案中。

我將第二個git存儲庫添加到第一個git存儲庫作為子模塊,因此我具有以下文件結構:

MainSolution.sln
SomeProject1
SomeProject2
packages
my-second-project
  SecondSolution.sln
  SomeProject3
  SomeProject4

我的單獨存儲庫(還原nuget包后)看起來像

SecondSolution.sln
SomeProject3
SomeProject4
packages

現在,每個項目分別引用nuget restore packages文件夾。 因此,我添加的子模塊中的所有項目都無法還原其nuget軟件包,因為它們搜索的my-second-project/packages文件夾不存在。 而且,如果我重新安裝nuget軟件包,那么我可以在git diff中看到它們開始引用根軟件包文件夾(例如..\\..\\packages )。

我該如何解決?

我通過將所有*.csproj文件中所有位置的..\\packages更改為$(SolutionDir)\\packages來解決此問題。 效果很好。 簡單的腳本涵蓋了它:

find -name "*.csproj" | xargs sed -i 's/\.\.\\packages/$(SolutionDir)\\packages/g'

不知道為什么nuget在默認情況下沒有這種行為,現在每當我更新/安裝nuget軟件包時,我都需要重新運行此腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM