首页 > 其他 > 详细

tfs 中nugget程序包引用问题解决方案

时间:2014-03-14 18:22:10      阅读:613      评论:0      收藏:0      [点我收藏+]

转自http://blogs.4ward.it/enable-nuget-package-restore-in-visual-studio-and-tfs-2012-rc-to-building-windows-8-metro-apps/

 

Enable NuGet package restore in Visual Studio and TFS 2012 RC to building Windows 8 Metro Apps

In the previous post (only in Italian for now, sorry) we created a new build machine with Windows 8 RP and TFS Build Agent 2012 RC to building new Windows 8 Metro Applications.

Having a build process for each solution is very useful, but we can have some errors like these:

  • C:\Builds\[…]\.nuget\nuget.targets(76,9): error : Package restore is disabled by default. To give consent, open the Visual Studio Options dialog, click on Package Manager node and check ‘Allow NuGet to download missing packages during build.’ You can also give consent by setting the environment variable ‘EnableNuGetPackageRestore’ to ‘true’.
  • C:\Builds\[…]\.nuget\nuget.targets(76,9): error MSB3073: The command “”C:\Builds\[…]\.nuget\nuget.exe” install “C:\Builds\[…]\packages.config” -source “” -o “C:\Builds\[…]\packages”" exited with code 1.

We use NuGet in Visual Studio 2012 RC with TFS 2012 RC: we want to enable missing NuGet packages restoring and we would prefer to not check-in packages into source control. So, in Visual Studio Solution Explorer, right click on solution and click on “Enable NuGet Package Restore”:

bubuko.com,布布扣

Do you want to configure this solution to download and restore missing NuGet packages during build? Yes, of course:

bubuko.com,布布扣

A .nuget folder is added to the root of the solution.

bubuko.com,布布扣

In Visual Studio, Check In the pending changes and go to Tools –> Options –> Package Manager: “Allow NuGet to download missing packages during build” is flagged:

bubuko.com,布布扣

All right! In the Solution Explorer check if there is the “.nuget” folder in your Solution. In the “packages” folder on Source Control, delete all the packages you don’t want they exist in source control, but keep the “repositories.config” file:

bubuko.com,布布扣

NOTE: When you delete something from Source Control in Visual Studio, you are doing a logicaldelete. You can phisically delete version-controlled files and folders from Team Foundation version control by using the “tf destroy” command.

Now, right click on the Solution –> Manage NuGet Packages for Solution…

bubuko.com,布布扣

If some NuGet packages are missing from you solution, click on Restore button:

bubuko.com,布布扣

NuGet downloads missing packages:

bubuko.com,布布扣

And new packages are restored:

bubuko.com,布布扣

Let we see the Source Control: we have a .nuget folder with the NuGet application files (NuGet.exe, NuGet.targets and NuGet.Config):

bubuko.com,布布扣

In the “packages” folder we have a “repositories.config” file:

bubuko.com,布布扣

NuGet uses this file (repositories.config) to locate the packages.config files of each project in the solution:

<?xml version="1.0" encoding="utf-8"?>
<repositories>
 <repository path="..\ProjectName1\packages.config" />
 <repository path="..\ProjectName2\packages.config" />
 […]
</repositories>

Each project with at least one NuGet package has the packages.config file:

bubuko.com,布布扣

Each packages.config file contains the packages list with the id and other properties:

<?xml version="1.0" encoding="utf-8"?>
<packages>
 <package id="package1"version="1.0.0" />
 <package id="package2" version="1.0.1" /> 
 […]
</packages>

Lastly, on the Windows 8 build machine add the environment variable to Enable NuGet Package Restore:

  • Variable name: EnableNuGetPackageRestore
  • Variable value: true

bubuko.com,布布扣

IMPORTANT: Use System Variable! Otherwise, you can add a User Variable if you are logged with the TFS Build Service account (for example: domain\tfsbuild).

Restart the build machine and queue the build!

tfs 中nugget程序包引用问题解决方案,布布扣,bubuko.com

tfs 中nugget程序包引用问题解决方案

原文:http://www.cnblogs.com/353373440qq/p/3599298.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!