我已经广泛搜索了解决方案,并尝试了不同的方法,但都没有成功,所以我在这里提问。
我当前的需求是拥有单独的 Git 存储库,每个存储库包含一个 .Net 解决方案文件和相关项目。其中一个或多个存储库仅包含类库,我需要在其他存储库解决方案中使用这些库。
我的第一想法是使用 Git 子模块来避免丑陋的复制粘贴,并在开发应用程序时仍然可以访问类库的源代码。
因此,我的尝试是包含子模块,然后在我的当前解决方案中进行 "添加现有项目" 并加载所需的类库(们)。
我一直无法解决的巨大问题是 Nuget 包还原。导入的项目引用了 "..\Packages*" 中的库,但当作为子模块导入时,它们位于另一个子文件夹中,因此无法找到所需的依赖项:
- MySolution.sln
- Packages folder
- MyAppProject folder
- Submodule folder
-- EXPECTED packages folder for MyLibraryProject that I cannot generate
-- MyLibraryProject folder
我找到并尝试了一个解决方案这个,但它有两个主要问题:
- 它应该使用MsBuild包恢复工具来工作,但我绝对不想使用它
- 即使尝试使用MsBuild包还原工具,它也完全没有起作用,我当前的解决方案文件夹中仍然只有一个"Packages"文件夹。也许我做错了什么,但是我仍然不想使用MsBuild方法。
现在我真的很想知道是否有一种简洁的方法来解决这个问题,或者我唯一能做的就是放弃在我的应用程序解决方案中拥有库源代码,并在私有NuGet提要中发布我的库并从那里引用它们。
谢谢。