Кажется возможным получить пакеты только из частного фида пакетов (используя VS Manage NuGet Packages for Solution) в моей организации DevOps Azure, добавив PAT (с областью пакетов) в packageSourceCredentials в моем% APPDATA% \ NuGet \ NuGet.config.
Мне не нравится делать это по двум причинам -
- Это обязательное условие хоста (ну, хорошо, это в моем профиле роуминга, но все же ..)
- Пользовательская шкала времени для PAT допускает максимальный срок жизни токена не более одного года.Конечно, автоматический токен сеанса был бы лучше, чем токен с истекающим сроком действия, и ему нужно было бы установить его значение в файле NuGet.config?
Я заметил, что выполняется. \ CredentialProvider.VSS.exe -U {my_org_url} возвращает объект JSON, содержащий маркер сеанса в свойстве Password с требуемой областью доступа для каналов частного пакета, т. е. «Имя пользователя»: «VssSessionToken», «Пароль»: «{my_session_token}» - там говорится «Получение новых учетных данных для источника: {my_package_feed_url}, область действия: vso.packaging_write vso.drop_write "в выходных данных.
Если я использую источники nuget, добавьте и используйте значение пароля в качестве значения PAT, тогда настройка пароля в кодировке base-64 packageSourceCredentials работаети можно получить доступ к фиду пакетов в VS, но, поскольку это маркер сеанса, он не работает очень долго.
Я попытался добавить провайдер учетных данных nuget, т.е.% USERPROFILE% .nuget \ plugins \netcore \ CredentialProvider.Microsoft, но, похоже, это ничего не изменило.
Аналогично, размещение CredentialProvider.VSS.exe здесь "% LOCALAPPDATA% \ NuGet \ CredentialProviders \ CredentialProvider.VSS.exe" не имеет значения, т. Е. PAT в NuGet.config был единственным способом доступа к частной ленте пакетов из VS.
А также даже установка NUGET_CREDENTIALPROVIDERS_PATH =% LOCALAPPDATA% \ NuGet \ CredentialProviders также не имеет значения.
Я надеюсь, что каким-то образом можно установить какое-то волшебство, чтобы CredentialProvider.VSS.exe (илиМожно настроить другой поставщик учетных данных NuGet, который работает с VS), чтобы мне не приходилось использовать PAT в packageSourceCredentials.