无法向Azure功能提供NuGet包源凭据

时间:2016-10-05 12:08:15

标签: c# azure nuget azure-devops azure-functions

我有一个Azure功能,它依赖于私有包源。

我正在将nuget.config文件复制到app服务,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="MyPackageFeed" value="<package feed path>" />
  </packageSources>
  <packageSourceCredentials>
  <MyPackageFeed>
    <add key="Username" value="<first part of Hotmail address, before @ symbol>" />
    <add key="Password" value="<newly generated access token for username>" />
  </MyPackageFeed>
</packageSourceCredentials>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
</configuration>

注意:我使用Hotmail帐户电子邮件地址的第一部分,因为这是我用来验证其他地方的私人Feed的用户名 - Visual Studio等。

这就是我在Azure功能门户中的日志中看到的:

2016-10-05T11:57:16.974 Restoring packages.
2016-10-05T11:57:16.974 Starting NuGet restore
2016-10-05T11:57:18.381 Restoring packages for D:\home\site\wwwroot\HttpTriggerSqlDb\project.json...
2016-10-05T11:57:19.322 Unable to load the service index for source <path to feed>
2016-10-05T11:57:19.322 The parameter is incorrect.

如果按照@brettsam的建议将Password密钥更改为ClearTextPassword,我现在可以获得以下内容:

2016-10-05T14:03:04.479 Please provide credentials for: <path to feed>
2016-10-05T14:03:05.097 Unable to load the service index for source <path to feed>
2016-10-05T14:03:05.097 Response status code does not indicate success: 401 (Unauthorized).
2016-10-05T14:03:05.142 UserName: Password:

1 个答案:

答案 0 :(得分:8)

尝试使用key="ClearTextPassword"(而不是key="Password")。如果您使用Password,nuget会假定该值已加密,并会尝试对其进行解密。

例如,我在VSTS中创建了一个包源,然后创建了一个个人访问令牌并使用了它:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="MyPrivateFeed" value="https://brettsam.pkgs.visualstudio.com/_packaging/stackoverflow/nuget/v3/index.json" />
  </packageSources>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <packageSourceCredentials>
    <MyPrivateFeed>
      <add key="Username" value="brettsam" />
      <add key="ClearTextPassword" value="{PAT}" />
    </MyPrivateFeed>
  </packageSourceCredentials>
</configuration>