2017-09-07 3 views
0

Ich habe 2 lokale Assemblies referenziert über nuget (gepackt die DLL's) mit vs2017 auf einer asp.net Core-Lösung, baut gut lokal.nuget Wiederherstellung fehlgeschlagen in Teamdienste Build

versuchen nun, einen Build über VSTS generieren ich die folgende Störung erhalte,

Detected NuGet version 4.0.0.2283/4.0.0 
SYSTEMVSSCONNECTION exists true 
Saving NuGet.config to a temporary config file. 
d:\a\_tool\NuGet\4.0.0\x64\nuget.exe restore d:\a\1\s\TestFrameworkCoreAPI.sln -Verbosity Detailed -NonInteractive -ConfigFile d:\a\1\Nuget\tempNuGet_37.config 
NuGet Version: 4.0.0.2283 
MSBuild auto-detection: using msbuild version '15.3.409.57025' from 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\bin'. Use option -MSBuildVersion to force nuget to use a specific version of MSBuild. 
MSBuild P2P timeout [ms]: 120000 
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\bin\msbuild.exe /t:GenerateRestoreGraphFile /nologo /nr:false /p:RestoreUseCustomAfterTargets=true /p:BuildProjectReferences=false /v:q /p:NuGetRestoreTargets="d:\a\_temp\NuGet-Scratch\w53qa5rr.4sd.targets" /p:RestoreTaskAssemblyFile="d:\a\_tool\NuGet\4.0.0\x64\nuget.exe" /p:RestoreGraphOutputPath="d:\a\_temp\NuGet-Scratch\4mlmlfgh.mmy.result" /p:ExcludeRestorePackageImports=true /p:RestoreRecursive=False /p:RestoreProjectFilterMode=exclusionlist /p:RestoreContinueOnError=WarnAndContinue /p:RestoreGraphProjectInput="d:\a\1\s\TestFrameworkCoreAPI\TestFrameworkCoreAPI.csproj;" "d:\a\_temp\NuGet-Scratch\w53qa5rr.4sd.targets" 
Running restore with 2 concurrent jobs. 
Reading project file d:\a\1\s\TestFrameworkCoreAPI\TestFrameworkCoreAPI.csproj. 
Reading project file d:\a\1\s\TestFrameworkCoreAPI\TestFrameworkCoreAPI.csproj. 
Restoring packages for d:\a\1\s\TestFrameworkCoreAPI\TestFrameworkCoreAPI.csproj... 
Restoring packages for d:\a\1\s\TestFrameworkCoreAPI\TestFrameworkCoreAPI.csproj... 
Restoring packages for .NETCoreApp,Version=v1.1... 
Restoring packages for .NETCoreApp,Version=v2.0... 
System.AggregateException: One or more errors occurred. ---> NuGet.Protocol.Core.Types.FatalProtocolException: Failed to retrieve information about 'Microsoft.VisualStudio.Web.CodeGeneration.Tools' from remote source 'D:\TestFrameworkAssemblies'. 
    at NuGet.Protocol.LocalV3FindPackageByIdResource.GetVersionsCore(String id, ILogger logger) 
    at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) 
    at NuGet.Protocol.LocalV3FindPackageByIdResource.GetAllVersionsAsync(String id, SourceCacheContext cacheContext, ILogger logger, CancellationToken token) 
    at NuGet.Commands.SourceRepositoryDependencyProvider.<FindLibraryAsync>d__12.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
Error: d:\a\_tool\NuGet\4.0.0\x64\nuget.exe failed with return code: 1 
Packages failed to restore 

ich eine nuget.config Datei in einem .nuget Ordner in der Wurzel der Lösung befindet,

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
<packageSources> 
    <!-- remove any machine-wide sources with <clear/> --> 
    <clear /> 
    <add key="Test Framework" value="D:\TestFrameworkAssemblies" /> 
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" /> 
</packageSources> 
<activePackageSource> 
    <add key="All" value="(Aggregate source)" /> 
</activePackageSource> 
</configuration>  

Dies ist, was in den VSTS ist bauen def, wiederherstellen NuGet Schritt

build definition

Es sieht so aus, als ob es immer auf meine lokale Assembly verweist und nicht auf den Standard nuget.org, jetzt in der Konfigurationsdatei, wenn ich meinen lokalen Eintrag in Framework-Assemblies nehme, funktioniert der niget-Teil, aber ich bekomme einen primären Referenzfehler Finde die 2 Baugruppen, die ich lokal gepackt habe.

In diesem Moment im Kreis gegangen, wie können Sie VSTS lokale Baugruppen sowie nuget.org wiederherstellen. Ich benutze auch Hosted 2017.

Dank im Voraus

+0

Sind die Pakete in 'D: \ TestFrameworkAssemblies' * auf dem Build-Server *? –

+0

Durch den Build mit VSTS online können Sie auf das Dateisystem eines gehosteten Agenten zugreifen? –

Antwort

1

Es scheint, dass Sie auf Hosted-Agent die Build wurden Warteschlange. Da sich die Pakete auf Ihrem lokalen Rechner befinden, sollten Sie mit dem private agent erstellen, der sich auf Ihrem lokalen Rechner befindet.

Zusätzlich müssen Sie die lokalen Pakete im Repository hinzufügen und dann auf die Pakete mit dem neuen Pfad verweisen und den Wert in nuget.config ändern, wenn Sie den Build auf dem Hosted Agent in eine Warteschlange stellen müssen.

+0

Also muss ich die Pakete zu meiner Lösung in VSTS hinzufügen, dann irgendwie verweisen?. Hast du ein Beispiel? In meiner Lösung verweise ich bereits auf den lokalen Pfad, aber der Versuch, VSTS CI/CD auf dieser Lösung einzurichten, scheint viel komplizierter zu sein, da ich nur versuche, zwei lokale Assemblies zu referenzieren, was die Norm in der Entwicklung wäre. –

+0

Wie bauen Sie mit privaten Agenten über VSTS? –

+0

Sie müssen zuerst einen privaten Agenten einrichten, detaillierte Schritte wie https://www.visualstudio.com/en-us/docs/build/actions/agents/v2-windows. –

Verwandte Themen