【问题标题】:nuget creating two package folders?nuget创建两个包文件夹?
【发布时间】:2016-12-31 19:28:55
【问题描述】:

好的,

所以我最近重新安装了 Windows 10 并升级了 vs2013 -> vs2015。此时我尝试获取几个 nuget 包。

我遇到的问题是我的 .nuget/packages 文件夹与我的解决方案文件处于同一级别(通过 NuGet.config 设置),但我在用户文件夹的根目录中也创建了完全相同的文件夹.

我的解决方案的包文件夹包含为该解决方案安装的包,而我不希望在我的用户目录中的包包含我正在处理的所有项目和解决方案的所有包。

有没有办法防止在我的用户目录中创建这个 .nuget 文件夹?当我已经有我的解决方案的包文件夹时,它似乎没用

谢谢

【问题讨论】:

    标签: visual-studio nuget nuget-package


    【解决方案1】:

    您可以清除用户配置文件下的.nuget\packages 目录,但是如果您再次安装这些软件包,则会再次下载它们。

    包检索

    %USERPROFILE%\.nuget\packages 是 NuGet v3 在为新项目类型(例如通用 Windows 项目)安装 NuGet 包时使用的本地计算机缓存。

    对于 C# 控制台项目,NuGet 将使用 %LOCALAPPDATA%\NuGet\Cache 目录,这也是 NuGet v2 使用的目录。

    ASP.NET Core 项目目前使用自己的 %USERPROFILE%\.dnx\packages 目录来存储 NuGet 包。

    指定自定义 NuGet 包位置

    要防止 NuGet 将包复制到您的用户配置文件,您可以创建一个新的 %NUGET_PACKAGES% 环境变量,指向您希望 NuGet 复制文件的位置,例如C:\git-repositories\.nuget\packages.

    为了防止 NuGet 也将包复制到解决方案文件夹,您可以在解决方案文件夹或任何更高级别的根目录中创建一个新的 NuGet.config 文件。作为内容,您可以指定以下 XML。

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

    作为配置继承的帮助,请点击此链接:NuGet Configuration Inheritance

    【讨论】:

    • 是否无法阻止 nuget 将包复制到我的用户配置文件下的 .nuget\packages
    • 对于 NuGet v2,您可以指定一个 NuGetCachePath 环境变量来定义全局包路径。对于 NuGet v3,环境变量是 NUGET_PACKAGES
    • 谢谢,我已经修改了您的答案,添加了关于覆盖自定义包位置的部分。
    • %NUGET_PACKAGES% 它仍然是正确的名称吗?这里在链接docs.nuget.org/ndocs/consume-packages/… 中说它应该是 %PACKAGEHOME%。
    • 该页面说存储库路径可以定义为任何环境变量。这意味着变量将被扩展。以前,NuGet.Config 文件只能有一个目录路径。 PACKAGEHOME 不是 NuGet 使用的已知环境变量。它仍然使用NUGET_PACKAGES
    猜你喜欢
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 2018-05-31
    • 2023-03-14
    相关资源
    最近更新 更多