首页 > 解决方案 > nuget.exe 忽略 packageSourceCredentials 的继承

问题描述

是否可以配置 Nuget,以便在解决方案目录中的文件中配置包源,而在位于用户级别 ( )nuget.config的文件中配置这些源的凭据?nuget.config%appdata%\NuGet\NuGet.Config

阅读设置如何应用于nuget 操作,似乎nuget.config具有某种继承性。我试图通过以下方式使用此继承为我的团队配置 nuget。

  1. 每个开发人员都将拥有一组个人的 Nuget 存储库凭据。

  2. 每个 Visual Studio 解决方案都将Nuget.config在解决方案目录中包含一个文件。

    2.1。该Nuget.config文件将包含两个包源:nuget.org 和一个私有凭据所需的源。

  3. 每个开发人员都将在位于用户配置文件 ( %appdata%\NuGet\NuGet.Config) 中的文件中配置私有 Nuget 源的凭据。通过这种方式,这些凭据不会提交给源代码控制。

nuget.config以下是我尝试使用的文件的一些示例:

解决方案级别文件

<?xml version="1.0" encoding="utf-8"?>
<configuration>  
    <packageSources>
        <add key="nuget.org" value="https://api.nuget.org/api/v3/index.json" />
        <add key="Private" value="url_for_the_private_feed" />
    </packageSources>
    <activePackageSource>
        <add key="All" value="(Aggregate source)" />
    </activePackageSource>  
</configuration>

用户级文件

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />    
  </packageSources>
  <packageSourceCredentials>
    <Private>
      <add key="Username" value="user_name_here" />
      <add key="Password" value="encrypted_password_here" />
    </Private>
  </packageSourceCredentials>
</configuration>

出于某种原因,我无法让它工作。

标签: nuget

解决方案


我终于发现,如果 NuGet 命令包含参数,那么如何应用设置中-configFile <path to nuget.config>描述的行为将不适用,相反,NuGet CLI 只会考虑将配置文件作为参数传递。

这在文档中并不清楚。出于某种原因,我认为我可以将nuget.config文件传递给 NuGet CLI,它会将该文件与用户级配置和计算机级配置结合使用。


推荐阅读