powershell - PowerShell Find-Package/Save-Package 需要私有 NuGet 存储库的凭据
问题描述
我无法将在我的 Windows 系统上正确运行的 PowerShell 脚本移植到 Docker Windows 容器。我尽力在 Dockerfile 中复制设置,并且可以确认 PowerShell (5.1) 和 PackageManagement 模块 (1.4.7) 版本是相同的。
我已经设置了一个包含凭据和 apikey 的私有 NuGet 源,并确认两者的内容C:\Users\me\AppData\Roaming\NuGet\NuGet.Config
是C:\Users\ContainerAdministrator\AppData\Roaming\NuGet\NuGet.Config
相同的:
nuget sources Add -Name nuget-private -Source https://artifactory/artifactory/api/nuget/private_nuget -Username <USERNAME> -Password <ENCRYPTED_PASSWORD>
nuget setapikey -Source nuget-private <USERNAME>:<APIKEY>
在包括 Docker 在内的两个系统上,命令nuget list -Source nuget-private
返回预期内容而不需要凭据。
但仅在 Docker 上,遵循 PowerShell 命令只是失败,需要凭据
Find-Package -Name "MyAssembly" -Source nuget-private
添加了尽可能适当-Credential $creds
的工作。
因为我想避免在我的 PowerShell 脚本中添加凭据逻辑,所以我有兴趣了解为什么存储的凭据C:\Users\ContainerAdministrator\AppData\Roaming\NuGet\NuGet.Config
不会被 cmdlet 自动加载和使用Save-Package
- 而它在我的 Windows 工作站中是这样,我不喜欢这样的“魔法”差距。
顺便说一句,在这两种情况下保持相同的 PowerShell 命令调用而无需凭据的任何解决方法都会有所帮助 - 例如,环境变量......
解决方案
推荐阅读
- php - 即使用户拥有所有特权,mysql 也会显示访问被拒绝 1045
- asp.net - Bootstrap asp.net 使用 Multiview 显示移动视图
- android - 用于图像过滤器的 Opencv vs Opengl
- git - 如何在 TortoiseGit 中填写默认提交消息?
- mysql - 汇合的 JDBC-Sink Examples.table 不存在
- django - 抛出异常时 Gunicorn 工作人员重新启动
- c++ - qt图表等轴(轴应该是正方形而不是矩形)
- ubuntu-14.04 - gstreamer 配置错误 Ubuntu
- c# - 在实体框架中以列表形式返回选定列时出现问题
- laravel - 无法在本地使用 Laravel 重置密码