Error using nuget in VS2012 “missing packages”

痞子三分冷 提交于 2019-12-09 05:01:45

问题


When I build my project from within VS2012 I get the following error message

This project references NuGet package(s) that are missing on this computer. 
Enable NuGet Package Restore to download them. 

I have the nuget options set for NuGet to download missing packages.

Yet I still get the error. I have nugget 2.7 installed. With VS2012 update 3


回答1:


As Dan was alluding to, if your solution has a .nuget folder (from enabling package restore), then nuget 2.7's automatic package restore feature is disabled, as per http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore.

If automatic package restore is disabled, then any package that installs a project target files will cause your build to fail until you manually restore that package in your solution, as described by http://blogs.msdn.com/b/dotnet/archive/2013/06/12/nuget-package-restore-issues.aspx. (Note that the workarounds described in the link are out-dated now that nuget 2.7 automatic package restore is available.)

So, if both these things are true, then delete the NuGet.targets file in the .nuget folder, and Nuget will then restore the missing package before invoking MSBuild. You can delete nuget.exe in the .nuget folder as well, as it will no longer be used.




回答2:


Please follow below mentioned steps:

Step 1: Please enable Nuget Package Restore by right clicking on solution [as mentioned in below screenshot]

Step 2: [Follow this if the issue / error is not resolved by following step 1] Still if you face the issue, please open .csproj file in notepad and check for the package path which might look like

So your solutions directory structure will be like:

\SolutionDirectory\

Package Directory:

\SolutionDirectory\packages

Project Directory:

\SolutionDirectory\ProjectName\ProjectName.csproj

Please open this .csproj [in which you're getting error] in notepad and search for packages path and update it to its relevant path.

For e.g. my .csproj contained, if .csproj file contains ..\..\packages then update that path with ..\packages




回答3:


The answers are very helpful for me to find the solution. Since the resolution to my specific issue requires one more step, I report it here in case it is helpful to others. The error I was getting:

Error   117 This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is ..\..\Windows Phone 8\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets.

I followed the answers and deleted all the suggested things, but the error still kept showing up. I finally got rid of it by deleting the following line in the .csproj:

<Error Condition="!Exists(...



回答4:


  1. Delete NuGet
  2. Remove with Notepad .targets that depending NuGet from project file
  3. Install latest version of NuGet
  4. Restart Visual Studio and reopen project/solution.
  5. If you want you can add new .nuget files with latest version of NuGet



回答5:


Open csproj file in notepad and remove Error Condition elements from here (or make these conditions work):

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
    <Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.101.0\build\net45\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.101.0\build\net45\System.Data.SQLite.Core.targets'))" />
  </Target>



回答6:


Remove the .nuget directory from the solution if it exists. Edit the project file and remove the elements Import and Target that contain references to the .nuget folder, Save and reload the project.




回答7:


try this,

  1. List item
  2. right click on the solution
  3. click manage NuGet
  4. click setting on the left bottom corner
  5. check the Allow NuGet to download missing package.



回答8:


Simply Right Click on Solution and "Enable NuGet Package Restore" solve my problem.



来源:https://stackoverflow.com/questions/18833649/error-using-nuget-in-vs2012-missing-packages

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!