[英].NET Core NuGet restore fails with private NuGet feed (VSTS CI Build)
此问题涉及Visual Studio团队服务中的持续集成功能,特别是在自动构建中。
我已经设置了一个构建定义来构建我的.net核心mvc应用程序。
它使用.NET核心v1并针对.net framework 4.5.2进行编译。
我按照这里的说明操作:
https://www.visualstudio.com/en-us/docs/build/apps/aspnet/ci/build-aspnet-core
我在VSTS中设置了一个私有NuGet提要这是添加包提要源的命令:
Sources Add -Name "CiiDLFeed" -UserName "<username>" -Password "<password>" -ConfigFile $(Build.SourcesDirectory)/Nuget.config -Source https://mycompany.pkgs.visualstudio.com/_packaging/DLFeed/nuget/v3/index.json
我收到的错误:
错误:无法加载源https://mycompany.pkgs.visualstudio.com/_packaging/DLFeed/nuget/v3/index.json的服务索引。 错误:此平台的.NET Core不支持密码解密。 以下Feed使用加密密码:'CiiDLFeed'。 您可以使用明文密码作为解决方法。
为此,我在NuGet source add命令中添加了“-StorePasswordInClearText”参数:
Sources Add -Name "CiiDLFeed" -UserName "<username>" -Password "<password>" -ConfigFile $(Build.SourcesDirectory)/Nuget.config -Source https://mycompany.pkgs.visualstudio.com/_packaging/DLFeed/nuget/v3/index.json -StorePasswordInClearText
现在,我收到401错误:
错误:无法加载源https://mycompany.pkgs.visualstudio.com/_packaging/DLFeed/nuget/v3/index.json的服务索引。 错误:响应状态代码不表示成功:401(未授权)。
我正在使用在单独的构建定义中正确工作的相同的凭据,访问相同的nuget feed(.NET Web表单应用程序),所以它不应该给我401。
我也尝试在私有源中简单地引用库dll而不是NuGet包,但这似乎不适用于.NET Core:
.NET核心项目仅支持在此版本中引用.NET框架程序集。 要引用其他程序集,它们需要包含在NuGet包中并引用该包。
我们使用的解决方法是设置本地NuGet源,它是项目中的目录。 然后将.nupkg文件添加到其中,并在项目中引用它们。
这允许VSTS CI构建访问您的NuGet包,而无需设置远程NuGet源。
例如:
project_directory/
... project files ...
my_nuget_repo/
mypackage.nupkg
添加本地来源:
nuget sources add -Name "my_nuget_repo" -Source "<path_to_project>/my_nuget_repo"
您需要使用自己的Nuget.Config文件(可以使用PAT作为密码):
论点如下:
--configfile $(build.sourcesdirectory)/ConsoleAppCore/Nuget.Config
注意:您可以在解决方案根目录下创建或编辑NuGet.config,在project.json文件旁边并检查源代码控制,这样,您就不需要为.Net Core还原步骤指定configfile参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.