Error NU5026 dll to be packed was not found
Asked Answered
E

2

5

I am getting following error :

create_nuget
The file '/home/runner/work/MyNugetPackage/MyNugetPackage/MyNugetPackage/bin/Release/net6.0/MyNugetPackage.dll' to be packed was not found on disk.

This is my YAML file :

name: publish   
on:
  workflow_dispatch: # Allow running the workflow manually from the GitHub UI
  push:
    branches:
      - 'master'       # Run the workflow when pushing to the main branch
  pull_request:
    branches:
      - '*'          # Run the workflow for all pull requests
  release:
    types:
      - published    # Run the workflow when a new GitHub release is published

env:
  DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
  DOTNET_NOLOGO: true
  NuGetDirectory: ${{ github.workspace }}/nuget

defaults:
  run:
    shell: pwsh

jobs:
  debug:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: List files
      run: ls -R

  create_nuget:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
      with:
        fetch-depth: 0 # Get all history to allow automatic versioning using MinVer

    - name: Setup .NET
      uses: actions/setup-dotnet@v3

    - run: dotnet pack --configuration Release --output ${{ env.NuGetDirectory }}

    - uses: actions/upload-artifact@v3
      with:
        name: nuget
        if-no-files-found: error
        retention-days: 7
        path: ${{ env.NuGetDirectory }}/*.nupkg

  validate_nuget:
    runs-on: ubuntu-latest
    needs: [create_nuget]
    steps:
    - uses: actions/checkout@v3
    - name: Setup .NET
      uses: actions/setup-dotnet@v3

    - uses: actions/download-artifact@v3
      with:
        name: nuget
        path: ${{ env.NuGetDirectory }}

    - name: Install nuget validator
      run: dotnet tool update Meziantou.Framework.NuGetPackageValidation.Tool --global

    - name: Validate package
      run: meziantou.validate-nuget-package (Get-ChildItem "${{ env.NuGetDirectory }}/*.nupkg")

  run_test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Setup .NET
      uses: actions/setup-dotnet@v3
    - name: Run tests
      run: dotnet test --configuration Release

  deploy:
    if: github.event_name == 'release'
    runs-on: ubuntu-latest
    needs: [validate_nuget, run_test]
    steps:
    - uses: actions/download-artifact@v3
      with:
        name: nuget
        path: ${{ env.NuGetDirectory }}

    - name: Setup .NET Core
      uses: actions/setup-dotnet@v3

    - name: Publish NuGet package
      run: |
        foreach ($file in (Get-ChildItem "${{ env.NuGetDirectory }}" -Recurse -Include *.nupkg)) {
          dotnet nuget push $file --api-key "${{ secrets.NUGET_APIKEY }}" --source https://api.nuget.org/v3/index.json --skip-duplicate
        }

I have tried to run command to generate release folder as well in local because it was earlier complaining about it but now it is failing , I am using GitHub actions.

It is a Nuget packages that is supposed to be compatible with .NET 6

I am not sure what am I missing here.

Endomorph answered 13/11, 2023 at 6:51 Comment(3)
Is this path /home/runner/work/MyNugetPackage/MyNugetPackage/MyNugetPackage/bin/Release/net6.0/MyNugetPackage.dll valid? Have you checked the build logs? Is that DLL being generated? If yes, include those logs in your question.Abort
Yes this is exact error generated by Github ActionsEndomorph
Have you looked at learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/… and ruled out all the potential causes mentioned here?Abort
P
7

Encountered similar issue. There is a thing in your csproj that may trigger that. Make sure to remove this:

<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

source

The error line (french) was:

NuGet.Build.Tasks.Pack.targets(221,5): error NU5026: Le fichier 'C:...\bin\Release\net48....dll' à compresser est introuvable sur le disque.

Perlie answered 27/3, 2024 at 10:54 Comment(0)
I
0

I also encountered this error. In my case the issue was that I had set the project up to target multiple frameworks:

<TargetFrameworks>net45;net452;net46;net462;net47;net472;net48;net481;net6.0-windows;net8.0-windows</TargetFrameworks>

however I missed removing the original target framework line:

<TargetFramework>net8.0</TargetFramework>

Once I removed the TargetFramework declaration, the build completed without issue.

Interlineate answered 27/9, 2024 at 19:33 Comment(0)

© 2022 - 2025 — McMap. All rights reserved.