【问题标题】:Referencing NuGet packages from directory in solution从解决方案中的目录引用 NuGet 包
【发布时间】:2018-01-07 18:55:29
【问题描述】:

我有一个解决方案,其中包含多个 ASP.NET Core 项目,在 Visual Studio 2015 中进行管理。

我的 NuGet 包当前存储在 C:\Users\My User\.nuget\packages\ 中。我需要在我的解决方案中有一个 Packages 目录并从那里引用包。像这样:

  • 解决方案文件夹
      • 项目1
      • 项目2
      • [...]

我将包从上面的默认路径复制到解决方案目录,然后删除了项目的所有引用。然后我将我的 Packages 目录添加为 NuGet 包源。最后,我单击 Manage NuGet Packages 并将一些添加到特定项目,确保选择了我的自定义包源。

这似乎可行,但是当我检查引用包的路径时,它仍然是默认的C:\Users\[...]\packages\ 路径。

我错过了什么?如何引用解决方案目录中的包?

我尝试打开 .xproj 文件并手动设置路径,就像我以前在 .csproj 文件中所做的那样,但在 .xproj 文件中似乎是不可能的。或者我只是不知道该怎么做。

【问题讨论】:

    标签: .net visual-studio asp.net-core nuget


    【解决方案1】:

    我将包从上面的默认路径复制到解决方案目录...它仍然是默认的 C:\Users[...]\packages\ 路径

    您可能会混淆“repositoryPath”和“Packages source”的概念。

    虽然您删除了所有引用,将我的 Packages 目录添加为 NuGet 包源,从自定义包源安装引用,但您只需更改 Packages 源。 从自定义包源安装包后,NuGet 将从自定义包源下载包并将这些下载包设置为默认repositoryPath,然后将这些包从默认repositoryPath 安装到您的项目中强>。所以它仍然在默认路径中。

    如果你想改变 .net core 项目的包默认位置,你可以设置“NUGET_PACKAGES”环境变量。只需设置“NUGET_PACKAGES”=“c:\teampackages”。或者,您可以在解决方案旁边放置一个 NuGet.Config 文件,其中包含以下内容:

    <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <config>
          <add key="globalPackagesFolder" value=".\packages" />
        </config>
    </configuration>
    

    详细信息可以参考GitHub上的the same issue

    但是,我想说的是,您可能对结果不满意。因为 .Net Core 项目依赖于如此多的 NuGet 包。几乎徘徊在1GB左右。我认为您不想为每个解决方案设置所有这些包。此外,通过此更改,您需要在 VS 中为每个解决方案设置额外的源。 .net core 项目很不方便。这就是 NuGet 团队为 .net 核心项目设置特殊设置的原因。

    【讨论】:

      【解决方案2】:

      您可以在 src 目录中创建 Nuget.config 并设置 存储库路径

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <config>
          <add key="repositoryPath" value="..\packages" />
        </config>
      
      </configuration>
      

      【讨论】:

        【解决方案3】:

        您可以为离线开发创建一个本地 nuget 存储库,而不是使用本地存储库来使用包目录。这是指南:

        CREATING A LOCAL NUGET REPOSITORY FOR OFFLINE DEVELOPMENT

        【讨论】:

          猜你喜欢
          • 2012-03-15
          • 2016-02-28
          • 1970-01-01
          • 2012-02-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多