Joseph Cenk
Joseph Cenk

Reputation: 117

Nuget returned an unexpected status code '404 Not Found' - Package on local drive

Trying to generate a Nuget Package from dll. One of our project is generating ConfigurationCore.dll and References of project assemblies given below

Using below ConfigurationCore.nuspec to generate Nuget Package

<?xml version="1.0"?>
<package >
<metadata>
<id>ConfigurationCore</id>
<version>1.2.0</version>
<title>Configuration Core</title>
<authors>MAKK</authors>
<owners>IT Department</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>ConfigurationCore contains core funcationality of Software</description>
<releaseNotes></releaseNotes>
<copyright>Copyright 2018</copyright>

<dependencies>
  <dependency id="Newtonsoft.Json" version="10.0.3" />
</dependencies>
</metadata>
<files>
<file src="C:\Users\makk\source\repos\ConfigurationCore\bin\x86\Test\ConfigurationCore.dll" target="lib\net461" />
</files>
</package>

Attempting to gather dependency information for package 'ConfigurationCore.1.2.0' with respect to project 'NugetTest', targeting '.NETFramework,Version=v4.6.1' Gathering dependency information took 1.09 sec Attempting to resolve dependencies for package 'ConfigurationCore.1.2.0' with DependencyBehavior 'Lowest' Resolving dependency information took 0 ms Resolving actions to install package 'ConfigurationCore.1.2.0' Resolved actions to install package 'ConfigurationCore.1.2.0' The V2 feed at 'http://builtsrv1:8080/nuget/FindPackagesById()?id='ConfigurationCore'&semVerLevel=2.0.0' returned an unexpected status code '404 Not Found'. Time Elapsed: 00:00:02.1513344 ========== Finished ==========

Note: The Nuget package source is on local harddrive... Please advise to fix the issue.

Upvotes: 8

Views: 15887

Answers (6)

Munirul Islam
Munirul Islam

Reputation: 221

Update your Nuget package link.

Go to Project -> Manage Nuget Packages.

Now click on your package source settings.

Update Source Link to https://api.nuget.org/v3/index.json

Screenshot of the example settings as explained above.

Upvotes: 22

Tom Carver
Tom Carver

Reputation: 1018

This can happen because you are supplying a "nuget v3" url when only a "nuget v2" url is supported (in my case apt-get was giving me some ancient version of nuget). Typically a nuget source that supports v3 will also support v2, so if your url looks like

https://<something>/api/v3/index.json

try changing it to

https://<something>/api/v2

Upvotes: 1

Mohammad Shahnawaz
Mohammad Shahnawaz

Reputation: 41

This is problem of bad connection in the NuGet package. Add the following link into the NuGet Package. https://api.nuget.org/v3/index.json Tha

Upvotes: 4

Marouane Afroukh
Marouane Afroukh

Reputation: 3001

Your URL should end with /nuget

Example: http://yourDomain.co/yourNuGetServer/nuget

Upvotes: 6

Leo Liu
Leo Liu

Reputation: 76790

Nuget returned an unexpected status code '404 Not Found' - Package on local drive

  1. Make sure the path in the src="..." is correct.

    Perhaps the path should be:

    ...\ConfigurationCore\ConfigurationCore\... rather than ...\ConfigurationCore\....

    In short, make sure you can find the dll file base on that url.

    Note: Generally, we recommend using relative paths in url, like:

    <file src="bin\x86\Test\ConfigurationCore.dll" target="lib\net461" />

  2. Update the version of nuget.exe.

    There is an issue on the nuget.exe 3.4.x, so please download nuget.exe 3.5 and above.

See Create nuget package from dlls for more detailed info.

Update: Please following below steps to create the nuget package:

  1. Download the nuget.exe, and set it on your local, for example, D:\NuGetLocalFolder.

  2. Create a new project with project name "ConfigurationCore".

  3. Open a cmd and switch to the path where nuget.exe was stored previously.

  4. Use command line:

    nuget spec "C:\Users\<Username>\Source\repos\ConfigurationCore\ConfigurationCore\ConfigurationCore.csproj"
    

    enter image description here

    You will find the .nuspec be genererated, Do not close this CMD window.

  5. Edit the ConfigurationCore.csproj.nuspec file and modify it, below is my .nuspec file:

    <?xml version="1.0"?>
    <package >
      <metadata>
        <id>ConfigurationCore</id>
        <version>1.2.0</version>
        <title>Configuration Core</title>
        <authors>MAKK</authors>
        <owners>IT Department</owners>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>ConfigurationCore contains core funcationality of Software</description>
        <releaseNotes></releaseNotes>
        <copyright>Copyright 2018</copyright>
    
        <dependencies>
          <dependency id="Newtonsoft.Json" version="10.0.3" />
        </dependencies>
      </metadata>
      <files>
        <file src="C:\Users\Admin\Source\repos\ConfigurationCore\ConfigurationCore\bin\x86\Test\ConfigurationCore.dll" target="lib\net461" />
      </files>
    </package>
    
  6. Save ConfigurationCore.csproj.nuspec file, and back to your CMD window, using pack command to generate the nuget package:

    enter image description here

    The package ConfigurationCore.1.2.0.nupkg was created into the folder where nuget.exe exists, D:\NuGetLocalFolder.

Upvotes: 2

Barr J
Barr J

Reputation: 10927

This is because you are referencing a non existing link: http://builtsrv1:8080/nuget/FindPackagesById()?id='ConfigurationCore'&semVerLevel=2.0.0'

You are using a method inside url, which is invalid and is the cause for the mistake:

             //this is an error
../nuget/FindPackagesById()?

fix the url, test it and try again,

Upvotes: 0

Related Questions