NuGet auto-package restore just will not work for me on my build server

别说谁变了你拦得住时间么 提交于 2019-12-02 17:04:58

问题


I'm at wits end here. I've tried everything I can find to get NuGet to restore my packages on the TFS build server and nothing seems to work. (The latest changes I checked in I got here). I have read a lot about problems with older versions of the Build Process Template, so I just changed the build to use TfvcTemplate.12.xaml and still no packages are restored. This latest change (from the link above) had me delete the NuGet.targets file and now I get an error saying:

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 
:\Builds\TFS\WebApps\src\WebApps\Main\Src\\.nuget\NuGet.targets.

回答1:


Since you have tried so many solutions based on google. Which may make your environment complex and confusing.

First there are two ways to do the nuget restore MSBuild-integrated restore and Automatic restore in Visual Studio. There are totally different things.

With NuGet 2.7 and later, Visual Studio automatically restores missing packages by default at the beginning of a build.

Since you are using NuGet 3.4, suggest you to use Automatic restore.

You could only select one way to do the restore operation. Based your error message NuGet.targets not found, maybe you haven't finished Migrating to automatic restore step. Please do it again or double check this.

You could also test the migration, do the following:

  • Remove the packages folder from the solution.
  • Open the solution in Visual Studio and start a build.
  • Automatic restore should download and install each dependency package, without adding them to source control.

Do not add $(SolutionDir).nuget\nuget.exe restore -SolutionDirectory ..\ to the pre-build event on my first project in the build order . This is the old way to do the restore. Just like the way describe here.

Nuget Restore.exe was added to the 2013 (v12) templates. Since you are using the TfvcTemplate.12.xaml , you don't have to add it again.

Highly doubt you were mixing up the two ways cause your present dilemma. Suggest you follow the automatic restore process, use a clean environment, complete migration to automatic restore step , test the migration locally, make sure NuGet.exe and NuGet.targets files from .nuget folder in source control are removed, checking pending changes, check your TfvcTemplate.12.xaml Process Templates with Nuget Restore functionality. Create a new build definition with old settings and use the template. Finally trigger the build...



来源:https://stackoverflow.com/questions/45700823/nuget-auto-package-restore-just-will-not-work-for-me-on-my-build-server

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