【问题标题】:Pick a network share for NuGet's repositoryPath为 NuGet 的 repositoryPath 选择一个网络共享
【发布时间】:2017-05-04 11:45:16
【问题描述】:

我们在源代码管理的根目录中使用 nuget.config 文件。这样,此源代码控制中的所有解决方案都可以使用相同的 nuget 配置,因此也可以使用相同的 repositoryPath,nuget 会在其中下载恢复的包以供使用。

在整个互联网上,我都没有提到将网络共享作为 nuget.config 文件的存储库路径。在我看来,这样做通常确实很有意义。

为什么每个开发人员和构建服务器都必须自己从 nuget.org 下载 nuget-packages,因为我们可以轻松地在例如\myTfsServer\Nuget\RepositoryPath?

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

有什么我明显想念的吗?

更新: 我不是在谈论来源。还原下载所有软件包的位置就是我所说的。我不想签入我恢复的包,所以我尝试在源代码控制之外弯曲 repositoryPath...

【问题讨论】:

  • 将 repositoryPath 添加到 Nuget.config 文件对我来说效果很好(例如 %APPDATA%\NuGet\NuGet.Config),包被恢复到共享文件夹而不是解决方案下的包文件夹。这些更改将在创建新项目时生效。对于旧项目,您需要修改引用的路径。文章:docs.nuget.org/ndocs/consume-packages/… 你更新现有项目的引用吗?如果你创建一个新项目,结果是什么?
  • 你对“”有什么问题吗?它在我身边有效。

标签: c# .net tfs nuget


【解决方案1】:

在 nuget.config 文件中,有名为 packageSourcesactivePackageSource 的部分。

packageSources 列出所有已知的包来源。 activePackageSource 标识当前活动的源或指示所有源的聚合。

要为 NuGet 的 repositoryPath 使用网络共享,您需要将新密钥添加到 packageSourcesactivePackageSource 部分,如下所示:

<packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="Network Share" value="\\myTfsServer\Nuget\RepositoryPath" />
</packageSources>


<activePackageSource>
    <add key="Network Share" value="\\myTfsServer\Nuget\RepositoryPath" />
</activePackageSource>

【讨论】:

  • 我不是在谈论来源。
  • 当你构建项目时,Nuget 包管理器会在你的解决方案文件夹下找到包,如果找不到包,它会从 activePackageSource 设置中获取包。您无需签入已恢复的包,也不建议对包进行源代码控制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-28
  • 2015-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多