如何在 Visual Studio 2015 中为多个解决方案和项目设置单个 Nuget 包文件夹
How to setup single Nuget packages folder for multiple solutions and projects in Visual Studio 2015
我们在 Visual Studio 2015 年开发了多个解决方案。这些解决方案共享一些需要 nuget 包的核心项目。当从一个解决方案添加 nuget 包并稍后由另一个解决方案打开时,无法解析 nuget 引用。
文件夹结构如下:
- 代码库
- 共享项目
- 共享项目 1
- 解决方案A
- WebProjectA
- 包文件夹 A
- 解决方案B
- WebProjectB
- 包文件夹 B
当我将 nuget 包安装到 SharedProject1
时,当 SolutionA
打开时,dll 引用显示 packages folder A
的路径。在另一台计算机上打开 SolutionB
时,SharedProject1
出现引用错误,因为 packages folder A
不存在。
我已阅读此解决方案:Setting up a common nuget packages folder for all solutions when some projects are included in multiple solutions 但这并不能解决问题,因为 .nuget/NuGet.config 文件中的 repositoryPath
键未应用于 [=18] =] 和 Nuget 3.4.3
为了解决这个问题,我们将 NuGet.config 文件放入 Codebase
目录,然后删除解决方案中的所有其他 Nuget.config 文件和 .nuget 文件夹。由于 NuGet 配置传播到子文件夹,单个 NuGet.config 文件中的设置将应用于所有解决方案。
在 Nuget.config 文件中,我们放置了 packageSource
、repositoryPath
设置。
示例 NuGet.config 文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<config>
<add key="repositoryPath" value="./SharedPackages" />
</config>
</configuration>
现有的 nuget 包需要卸载并重新安装,因为 .csproj 文件中的 dll 引用仍将显示旧的 packages
文件夹。或者您可以手动编辑 .csproj 文件。
生成的文件夹结构:
- 代码库 文件夹
- Nuget.Config 文件
- SharedPackages 文件夹
- SharedProjects 文件夹
- 共享项目 1
- SolutionA 文件夹
- WebProjectA
包文件夹 A
- 解决方案B
- WebProjectB
包文件夹 B
我们在 Visual Studio 2015 年开发了多个解决方案。这些解决方案共享一些需要 nuget 包的核心项目。当从一个解决方案添加 nuget 包并稍后由另一个解决方案打开时,无法解析 nuget 引用。
文件夹结构如下:
- 代码库
- 共享项目
- 共享项目 1
- 解决方案A
- WebProjectA
- 包文件夹 A
- 解决方案B
- WebProjectB
- 包文件夹 B
- 共享项目
当我将 nuget 包安装到 SharedProject1
时,当 SolutionA
打开时,dll 引用显示 packages folder A
的路径。在另一台计算机上打开 SolutionB
时,SharedProject1
出现引用错误,因为 packages folder A
不存在。
我已阅读此解决方案:Setting up a common nuget packages folder for all solutions when some projects are included in multiple solutions 但这并不能解决问题,因为 .nuget/NuGet.config 文件中的 repositoryPath
键未应用于 [=18] =] 和 Nuget 3.4.3
为了解决这个问题,我们将 NuGet.config 文件放入 Codebase
目录,然后删除解决方案中的所有其他 Nuget.config 文件和 .nuget 文件夹。由于 NuGet 配置传播到子文件夹,单个 NuGet.config 文件中的设置将应用于所有解决方案。
在 Nuget.config 文件中,我们放置了 packageSource
、repositoryPath
设置。
示例 NuGet.config 文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<config>
<add key="repositoryPath" value="./SharedPackages" />
</config>
</configuration>
现有的 nuget 包需要卸载并重新安装,因为 .csproj 文件中的 dll 引用仍将显示旧的 packages
文件夹。或者您可以手动编辑 .csproj 文件。
生成的文件夹结构:
- 代码库 文件夹
- Nuget.Config 文件
- SharedPackages 文件夹
- SharedProjects 文件夹
- 共享项目 1
- SolutionA 文件夹
- WebProjectA
包文件夹 A
- 解决方案B
- WebProjectB
包文件夹 B