【问题标题】:How to setup single Nuget packages folder for multiple solutions and projects in Visual Studio 2015如何在 Visual Studio 2015 中为多个解决方案和项目设置单个 Nuget 包文件夹
【发布时间】:2016-09-13 11:07:43
【问题描述】:

我们正在 Visual Studio 2015 中开发多个解决方案。这些解决方案共享一些需要 nuget 包的核心项目。当从一个解决方案添加 nuget 包并稍后由另一个解决方案打开时,无法解析 nuget 引用。

文件夹结构如下:

  • 代码库
    • 共享项目
      • SharedProject1
    • 解决方案A
      • WebProjectA
      • 包文件夹 A
    • 解决方案 B
      • WebProjectB
      • 包文件夹 B

当我打开SolutionA 时,当我将nuget 包安装到SharedProject1 时,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 键不适用于 Visual Studio 2015 和 Nuget 3.4.3

【问题讨论】:

    标签: c# .net visual-studio-2015 nuget nuget-package-restore


    【解决方案1】:

    为解决此问题,我们将 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 文件夹
        • SharedProject1
      • SolutionA 文件夹
        • WebProjectA
        • 包文件夹 A
      • 解决方案 B
        • WebProjectB
        • 包文件夹 B

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多