'dotnet build' command not finding NuGet packages (they exist)
Solution 1
I've resolved the issue by specifying where dotnet build
should look for the NuGet packages. It that within the image it doesn't look at the right location (although I'm not sure where it is looking either...)
I've specified the location with the --packages
option. This option is listed in the dotnet restore
documentation, but not in the dotnet build
ones, even though it is available there as well (and you need it there, specifically).
You can specify it as follows:
dotnet restore --packages <path>
and
dotnet build --packages <path>
It works with the --no-restore
option as well, if you need that.
My final Jenkinsfile looks as follows:
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'
}
}
}
}
Solution 2
I ran into a similar issue solved by clearing global packages and cache with dotnet nuget locals all --clear
as explained here.
ihendriks
Updated on June 09, 2022Comments
-
ihendriks almost 2 years
I'm trying to build my .NET Core 2.1 application from the command-line on my Jenkins server.
It builds fine on my local machine (Windows 10, Visual Studio 2017 Enterprise), and if I manually build it on the server Jenkins is running on (manually checkout Git repository and running
dotnet build
). It's only when I'm doing it through Jenkins in a Docker container that it fails.The error:
/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]
The package exists in
~/.nuget/packages/
.I'm aware my Jenkinsfile is a bit weird at the moment, but that has to do with me trying to make this all work. It seems
dotnet restore
is working fine, butdotnet build
is somehow not locating these files.I've tried specifying the package directory (through the environment variable, with
dotnet restore --sources
anddotnet build --sources
.I attached pretty much anything I could think of at the moment, but if I forgot something please tell. I'm pretty lost at the moment.
My Jenkinsfile:
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' } } } }
My .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>
Some build details:
$ docker --version Docker version 18.06.1-ce, build e68fc7a
Inside docker container:
$ 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)
-
user557657 about 4 yearsWhat is I want touse custom package also? How Can I reference ?
-
Peter Mortensen almost 4 yearsWhat do you mean by "It that within the image" (seems incomprehensible)?