我有许多解决方案,它们在不同的文件夹中共享相同的项目,例如,
Common folder
- common 1
- common 2
Contracts folder
- contracts for project A
- contracts for Project B
Application 1 folder (in this folder I have my solution file)
- Solution A
- nuget creates packages folder there
Application 2 folder
- Solution B
- nuget creates packages folder there
packages folder( I need this folder at top level, so all projects can reference it)
使用此结构,Nuget在Application 1和Application 2
中创建了两个包文件夹但所有这些项目和解决方案彼此相关,所以从逻辑上讲,最好只有一个包文件夹。
是否可以在nuget中仅设置一个文件夹并将该文件夹用于所有解决方案?
或者我应该以另一种方式构建我的解决方案和项目?
答案 0 :(得分:7)
您可以通过将nuget.config文件添加到具有以下内容的每个解决方案来实现此目的
<settings>
<repositoryPath>..\Packages</repositoryPath>
</settings>
确保它们都指向同一个文件夹。
制作此文件时,必须重新启动Visual Studio才能使用此设置(或者至少关闭并打开解决方案)。
但更实际的是只创建一个所有解决方案都使用的nuget.config。只需确保它位于比您希望包含的任何解决方案文件更高的文件夹中。恢复时,nuget管理器从解决方案文件旁边开始搜索此文件,如果找不到,则开始查找文件夹结构。
答案 1 :(得分:0)
在两个解决方案之间共享存储库实际上是不可能的,就像在解决方案A中更新包一样,解决方案b中的项目将不会更新,除非它们也在解决方案A中(并且可能会自动删除它们的包因为解决方案A不再使用它们了。基本上意味着拥有2个解决方案文件是多余的,或者您将打破其他解决方案而无法知道。
解决方案如何相互关联?如果我们有更多的信息,也许还有另一种解决问题的方法。