c# – ‘dotnet build’命令找不到nuget包(它们存在)

weixin_38087592 2019-09-12 01:45:00
我正在尝试从Jenkins服务器上的命令行构建我的.NET Core 2.1应用程序. 它在我的本地机器(Windows 10,VS2017 Enterprise)上构建良好,如果我在服务器上手动构建它,Jenkins正在运行(手动检出git存储库并运行dotnet构建).只有当我通过Jenkins在docker容器中执行它才会失败. 错误:/usr/share/dotnet/sdk/2.1.403/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(198,5):错误NETSDK1064:软件包Microsoft.CodeQuality.Analyzers,版本2.6.2不是找到.自NuGet恢复以来,它可能已被删除.否则,NuGet还原可能只是部分完成,这可能是由于最大路径长度限制. [/var/lib/jenkins/jobs/pr-builder/jobs/cgi-api/branches/PR-18/workspace/API/API.csproj] 该包存在于〜/ .nuget / packages /中. 我知道我的Jenkinsfile目前有点奇怪,但这与我试图让这一切都有效.似乎dotnet恢复工作正常,但dotnet构建不知何故找不到这些文件. 我已经尝试指定包目录(通过env var,使用dotnet restore –sources和dotnet build –sources. 我现在附上了几乎我能想到的任何东西,但是如果我忘记了什么,请告诉我.我此刻迷失了. 我的jenkins文件: pipeline { agent { docker { image 'microsoft/dotnet:2.1-sdk' } } environment { HOME = '.' NUGET_PACKAGES = './.nuget/packages/' } stages { stage('pre-build') { steps { // logging tooling versions sh 'dotnet --info' sh 'find ~/.nuget/packages/microsoft.codequality.analyzers/ -type f' sh 'dotnet nuget locals all --list' sh 'dotnet restore' // sh 'dotnet clean' } } stage('build') { steps { // sh 'dotnet restore --force --no-cache' // sh 'ls ./packages/' // sh 'find ./packages/microsoft.codequality.analyzers/ -type f' sh 'dotnet build --no-restore' } } stage('test') { steps { sh 'no test project configured' // sh 'dotnet test' } } } } 我的.csproj <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp2.1</TargetFramework> </PropertyGroup> <ItemGroup> <Folder Include="wwwroot\" /> </ItemGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.App" /> <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.6.2"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference> </ItemGroup> <PropertyGroup> <CodeAnalysisRuleSet></CodeAnalysisRuleSet> <Features>IOperation</Features> </PropertyGroup> </Project> 一些构建细节: $docker --version Docker version 18.06.1-ce, build e68fc7a 在docker容器内: $dotnet --info .NET Core SDK (reflecting any global.json): Version: 2.1.403 Commit: 04e15494b6 Runtime Environment: OS Name: debian OS Version: 9 OS Platform: Linux RID: debian.9-arm Base Path: /usr/share/dotnet/sdk/2.1.403/ Host (useful for support): Version: 2.1.5 Commit: 290303f510 .NET Core SDKs installed: 2.1.403 [/usr/share/dotnet/sdk] .NET Core runtimes installed: Microsoft.AspNetCore.All 2.1.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All] Microsoft.AspNetCore.App 2.1.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 2.1.5 [/usr/share/dotnet/shared/Microsoft.NETCore.App] $find ./.nuget/packages/microsoft.codequality.analyzers/ -type f ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/analyzers/dotnet/vb/Microsoft.CodeQuality.VisualBasic.Analyzers.dll ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/analyzers/dotnet/vb/Microsoft.CodeQuality.Analyzers.dll ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/analyzers/dotnet/cs/Microsoft.CodeQuality.Analyzers.dll ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/analyzers/dotnet/cs/Microsoft.CodeQuality.CSharp.Analyzers.dll ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/.signature.p7s ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/ThirdPartyNotices.rtf ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/build/Microsoft.CodeQuality.CSharp.Analyzers.props ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/build/Microsoft.CodeQuality.VisualBasic.Analyzers.props ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/build/Microsoft.CodeQuality.Analyzers.props ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/DesignRulesEnabled.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/DocumentationRulesDefault.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/PerformanceRulesDefault.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/UsageRulesDefault.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/ReliabilityRulesDefault.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/MaintainabilityRulesDefault.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/SecurityRulesDefault.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/PerformanceRulesEnabled.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/MaintainabilityRulesEnabled.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/UsageRulesEnabled.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/DocumentationRulesEnabled.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/ReliabilityRulesEnabled.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/AllRulesEnabled.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/NamingRulesEnabled.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/AllRulesDisabled.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/SecurityRulesEnabled.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/DesignRulesDefault.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/NamingRulesDefault.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/rulesets/AllRulesDefault.ruleset ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/microsoft.codequality.analyzers.2.6.2.nupkg.sha512 ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/microsoft.codequality.analyzers.2.6.2.nupkg ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/microsoft.codequality.analyzers.nuspec ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/tools/uninstall.ps1 ./.nuget/packages/microsoft.codequality.analyzers/2.6.2/tools/install.ps1 $dotnet nuget locals all --list info : http-cache: ./.local/share/NuGet/v3-cache info : global-packages: ./.nuget/packages/ info : temp: /tmp/NuGetScratch info : plugins-cache: ./.local/share/NuGet/plugins-cache $dotnet restore Restoring packages for /var/lib/jenkins/jobs/pr-builder/jobs/cgi-api/branches/PR-18/workspace/API/API.csproj... Restore completed in 13.5 sec for /var/lib/jenkins/jobs/pr-builder/jobs/cgi-api/branches/PR-18/workspace/API/API.csproj. $dotnet build --no-restore Microsoft (R) Build Engine version 15.8.169+g1ccb72aefa for .NET Core Copyright (C) Microsoft Corporation. All rights reserved. /usr/share/dotnet/sdk/2.1.403/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(198,5): error NETSDK1064: Package Microsoft.CodeQuality.Analyzers, version 2.6.2 was not found. It might have been deleted since NuGet restore. Otherwise, NuGet restore might have only partially completed, which might have been due to maximum path length restrictions. [/var/lib/jenkins/jobs/pr-builder/jobs/cgi-api/branches/PR-18/workspace/API/API.csproj] Build FAILED. /usr/share/dotnet/sdk/2.1.403/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(198,5): error NETSDK1064: Package Microsoft.CodeQuality.Analyzers, version 2.6.2 was not found. It might have been deleted since NuGet restore. Otherwise, NuGet restore might have only partially completed, which might have been due to maximum path length restrictions. [/var/lib/jenkins/jobs/pr-builder/jobs/cgi-api/branches/PR-18/workspace/API/API.csproj] 0 Warning(s) 1 Error(s)
...全文
716 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38108829 2019-09-12
  • 打赏
  • 举报
回复
我通过指定dotnet构建应该查找NuGet包的位置来解决这个问题.在图像中它没有看到正确的位置(虽然我不确定它在哪里看……) 我用–packages选项指定了位置.此选项在dotnet还原文档中列出,但在dotnet构建文件中没有列出,即使它在那里也可用(特别是你需要它). 您可以按如下方式指定它: dotnet restore --packages <path> 和 dotnet build --packages <path> 如果需要,它也可以使用–no-restore选项. 我的最终Jenkins文件如下所示: pipeline { agent { docker { image 'microsoft/dotnet:2.1-sdk' } } environment { HOME = '.' } stages { stage('pre-build') { steps { // logging tooling versions sh 'dotnet --info' sh 'dotnet nuget locals all --list' sh 'dotnet clean' } } stage('build') { steps { sh 'dotnet build --packages ./.nuget/packages' } } stage('test') { steps { sh 'echo no test project configured' // sh 'dotnet test' } } } }

474

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧