2015-03-30 25 views
8

Bazı sürekli tümleştirme işlemlerini gerçekleştiren TFS var. Bugün, bir çözüm için kırdı. AutoMapper'ı bulamıyor gibi görünüyor. Diğer tüm paketler sadece iyi bulunabilir.TFS, NuGet Paketini Geri Yükleyemiyor

Birkaç ilgili puan: paketlerin

  • Yok biz TFS onları geri alırız kaynak kontrolü bulunmaktadır.
  • Dahili bir NuGet beslememiz var, ancak diğer çözümlerde bir sorun yok gibi görünüyor ve bu çözümde yine de AutoMapper'ı değil, geri yükleme için Entity Framework kullanıyoruz.
  • NuGet Paketlerini kaldırmayı ve yeniden eklemeyi denedim. Şanssız.
  • Yapılandırma sunucusuna bağlanmak ve Visual Studio'da projeyi açmak için Uzak Masaüstü'nü kullanırsam, paketleri geri yükler ve iyi oluşturur. \ Sürücüsüne:
  • Ben Bizim TFS sunucu bizim Ge yüklü msbuild MySolutoin.sln
  • ardından D:\"Program Files"\"Microsoft Team Foundation Server 12.0"\Tools\Nuget.exe restore yürüterek elle inşa edebilirsiniz.

Bu TFS Günlükleri dan:

D:\Program Files\Microsoft Team Foundation Server 12.0\Tools\nuget.exe restore "C:\Builds\1\MyCompany Web\FclQuoteWcfService\src\FclQuoteWcfService.sln" -NonInteractive 
Installing 'EntityFramework 6.1.3'. 
Installing 'InternalPackage 1.0'. 
Successfully installed 'InternalPackage 1.0'. 
Successfully installed 'EntityFramework 6.1.3'. 
Unable to find version '3.3.1' of package 'AutoMapper'. 
C:\Program Files (x86)\MSBuild\12.0\bin\amd64\MSBuild.exe /nologo /noconsolelogger "C:\Builds\1\MyCompany Web\FclQuoteWcfService\src\FclQuoteWcfService.sln" /nr:False /fl /flp:"logfile=C:\Builds\1\MyCompany Web\FclQuoteWcfService\src\FclQuoteWcfService.log;encoding=Unicode;verbosity=normal" /p:SkipInvalidConfigurations=true /m /p:OutDir="C:\Builds\1\MyCompany Web\FclQuoteWcfService\bin\\" /p:VCBuildOverride="C:\Builds\1\MyCompany Web\FclQuoteWcfService\src\FclQuoteWcfService.sln.vsprops" /dl:WorkflowCentralLogger,"D:\Program Files\Microsoft Team Foundation Server 12.0\Tools\Microsoft.TeamFoundation.Build.Server.Logger.dll";"Verbosity=Normal;BuildUri=vstfs:///Build/Build/230;IgnoreDuplicateProjects=False;InformationNodeId=12;TargetsNotLogged=GetNativeManifest,GetCopyToOutputDirectoryItems,GetTargetPath;TFSUrl=http://ctidev2k8:8080/tfs/MyCompany;"*WorkflowForwardingLogger,"D:\Program Files\Microsoft Team Foundation Server 12.0\Tools\Microsoft.TeamFoundation.Build.Server.Logger.dll";"Verbosity=Normal;" /p:BuildId="9aa9f8af-c9b9-4d0a-ba06-7cc959231d8e,vstfs:///Build/Build/230" /p:BuildLabel="FclQuoteWcfService_20150330.2" /p:BuildTimestamp="Mon, 30 Mar 2015 20:40:07 GMT" /p:BuildSourceVersion="[email protected]$/MyCompany Web" /p:BuildDefinition="FclQuoteWcfService" 
Exception Message: MSBuild error 1 has ended this build. You can find more specific information about the cause of this error in above messages. (type BuildProcessTerminateException) Exception Stack Trace: at System.Activities.Statements.Throw.Execute(CodeActivityContext context) at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation) 
+0

Yalnızca dahili NuGet beslemenizden yapı sunucusundan mı geri yüklüyorsunuz? Ya da nuget.org'dan da geri yüklemeye izin veriyor musunuz? Eğer değilse, paketin aslında dahili beslemede olduğunu kontrol edin. Ayrıca, yapıyı manuel olarak çalıştırırken farklı erişim iznine sahip farklı bir kullanıcı olarak çalışıyor olabilirsiniz (ve farklı bir nuget.config global dosyası ve çok farklı nuget depoları). – Petrik

cevap

10

ben de görmüştüm. NuGet paketi geri yüklemesi dahili beslemeye geçtiğinde tetiklenir gibi görünüyor. Bunu yaptıktan sonra resmi nuget.org beslemeye geri dönmez ve iç beslemedeki paketleri aramaya devam eder.

Her iki paket kaynağının da NuGet.config dosyanıza eklendiğinden emin olun. Ayrıca her iki kaynağın da 'aktif' olduğundan emin olun.

<configuration> 
    <packageSources> 
     <add key="nuget.org" 
      value="https://www.nuget.org/api/v2/" /> 
     <add key="example.com" 
      value="http://example.com/feed/nuget/" /> 
    </packageSources> 
    <activePackageSource> 
     <add key="All" 
      value="(Aggregate source)" /> 
    </activePackageSource> 
</configuration> 

Bkz. NuGet configuration file.

Matt'in cevap ilaveten
0

, ben Nuget belgelerine aşağıdaki iyi gizlenmiş şeyler üzerinde durmak istiyoruz:

Nuget yapılandırma dosyaları klasör Nuget için (en yakın aşağıdaki öncelik sıralamasına tedavi edilir

.exe örneğin çözelti dizini c:\a\b\c olan üstlenmek için), kazanç çalışır:

  • c:\a\b\c\.nuget\nuget.config - Bu dosya tek çözüm düzeyi p için kullanılan , %AppData%\NuGet\nuget.config
  • c:\a\nuget.config
  • c:\nuget.config
  • Kullanıcı özgü yapılandırma dosyası
  • c:\a\b\nuget.config
  • c:\a\b\c\nuget.config 3.4 - ackages ve Nuget 3.0'da desteklenmez. Veya kullanıcı belirtilen dosyayı -ConfigFile aracılığıyla belirtin.

Bu does geri yüklemek veya yapılandırılmış bir feed almak değildir, bağlı olarak belirli bir senaryo en bazı garip davranışları açıklayabilir sen Nuget 2.x veya 3.x ile geri ister

Düzenleme: ve ben yet another reason why packages might not be detected bulundu:

Ben sürümü 1.1.1.0 ile paketi "A" var.

öncesinde 3.4 bu komut işe yaradı:

nuget install A -version 1.1.1.0

Nuget ile 3.4 RC alıyorum:

An error occurred while retrieving package metadata for 'A.1.1.1' from source 'N'. An error occurred while retrieving package metadata for 'A.1.1.1' from source 'N'. Data at the root level is invalid. Line 1, position 1.

... istemci 1.1 davranır

, 1.1 .0, 1.01.0 ve 1.1.0.0, SemVer kuralı kullanılarak aynı sürüm olarak s. nedeni olmayan normalleştirilmiş versiyonları geçmişte kasalı olan özel olduğunu v2 http kullanıcı belirttiğiniz şekliyle ilk tam sürüm dizesini göndereceği istemci aramaları için çünkü

Matt'in cevabı doğru yolda beni koy
1

ama İçsel bir besleme kullanmıyoruz, bu yüzden biraz daha kazımak zorunda kaldım. Bu yanıt en azından Visual Studio 2015'da oluşturulan ve TFS 2015 tarafından oluşturulan bir proje için çalışır.

Visual Studio'da, NuGet paket yöneticisi ayarlarını açın (Araçlar menüsü> NuGet Paket Yöneticisi> Paket Yöneticisi Ayarları). Soldaki seçenekler listesinden "Paket Kaynakları" nı seçin.

Screenshot of the NuGet Packages Sources options window

çözümün kökünde nuget.config dosyası oluşturun. Bu, ".sln" çözüm dosyanızla aynı klasör konumunda olmalıdır. Kopya yapılandırma dosyasında aşağıdaki:

<configuration> 
    <packageSources> 

    </packageSources> 
    <activePackageSource> 
     <add key="All" 
      value="(Aggregate source)" /> 
    </activePackageSource> 
</configuration> 

<packageSources> etiketi içinde "Paket Kaynakları" seçenekleri penceresinde listelenen her kaynak için bir <add key="" value="" /> girişi oluşturmak. Anahtar, URL'nin yukarısında gösterildiği gibi kaynağın adıdır ve değer de URL’dir. Hem "Kullanılabilir paket kaynakları" hem de "Makine çapındaki paket kaynakları" bölümünde listelenenleri ekleyin. Bu dosyada kullanılmadığı için yerel dosya sistemi için bir giriş oluşturmadım.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <packageSources> 
     <add key="nuget.org" 
      value="https://api.nuget.org/v3/index.json" /> 
     <add key="Microsoft and .NET" 
      value="https://www.nuget.org/api/v2/curated-feeds/microsoftdotnet/" /> 
    </packageSources> 
    <activePackageSource> 
     <add key="All" 
      value="(Aggregate source)" /> 
    </activePackageSource> 
</configuration> 

kaynak kontrolüne nuget.config dosyayı işlemekle sonra TFS gerekli tüm Nuget paketlerini indirip başarıyla çözümü oluşturmak başardı: Yukarıdaki ekran dayanarak, tam yapılandırma dosyası şimdi aşağıdaki içeriyor.