此问题涉及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 Feed 以下是添加包源参数的命令:
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使用加密密码:&#39; CiiDLFeed&#39;。 您可以使用明文密码作为解决方法。
为此,我添加了&#34; -StorePasswordInClearText&#34; NuGet source add命令的参数:
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。
我还尝试在私有Feed中简单地引用库dll而不是NuGet包,但这似乎不适用于.NET Core:
.NET核心项目仅支持引用.NET框架程序集 在这个版本中。要引用其他程序集,它们必须是 包含在NuGet包中并引用该包。
答案 0 :(得分:1)
我们使用的解决方法是设置本地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"
答案 1 :(得分:-1)
您需要使用自己的Nuget.Config文件(可以使用PAT作为密码):
参数如:
--configfile $(build.sourcesdirectory)/ConsoleAppCore/Nuget.Config
注意:您可以在解决方案根目录下创建或编辑NuGet.config,在project.json文件旁边并检查源代码控制,这样,您就不需要为.Net Core还原指定configfile参数步骤