2017-09-07 3 views
0

J'ai 2 assemblys locaux référencés via nuget (compressé la DLL) en utilisant vs2017 sur une solution de base asp.net, construit bien localement.restauration de nuget échouant dans les services de l'équipe build

maintenant essayer de générer une construction par l'intermédiaire VSTS je reçois l'erreur suivante,

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 

J'ai un fichier nuget.config dans un dossier .nuget situé à la racine de la solution,

<?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>  

C'est ce qui est dans les VSTS construire def, NuGet restauration a

build definition

On dirait qu'il fait toujours référence à mon assembly local et non au standard nuget.org, maintenant dans le fichier de configuration, si je retire mon entrée locale aux assemblys de frameworks, la partie nuget fonctionne mais je reçois une erreur de référence primaire trouver les 2 assemblées que j'ai emballées localement.

Vous êtes en train de tourner en rond avec ceci en ce moment, comment pouvez-vous obtenir VSTS pour restaurer des assemblages locaux emballés ainsi que de nuget.org. J'utilise aussi Hosted 2017.

merci à l'avance

+0

Les paquets sont-ils situés dans 'D: \ TestFrameworkAssemblies' * sur le serveur de construction *? –

+0

faire la construction en utilisant VSTS si en ligne, pouvez-vous accéder au système de fichiers sur un agent hébergé? –

Répondre

1

Il semble que vous étiez la queue de la construction sur l'agent hébergé. Comme les packages sont situés sur votre machine locale, vous devez créer avec le private agent qui se trouve sur votre machine locale. En outre, si vous devez mettre en file d'attente la construction sur l'agent hébergé, vous devez ajouter les packages locaux dans le référentiel, puis référencer les packages avec le nouveau chemin et modifier la valeur dans nuget.config.

+0

Donc je dois ajouter les paquets à ma solution contenue dans VSTS, puis en quelque sorte de référence? Avez-vous un exemple. Dans ma solution, je référence déjà le chemin local, mais en essayant de configurer VSTS CI/CD sur cette solution, cela semble beaucoup plus compliqué car je ne fais que tenter de référencer 2 assemblages locaux qui seraient la norme en développement. –

+0

Comment construire avec un agent privé via VSTS? –

+0

Vous devez d'abord configurer un agent privé, puis détailler les étapes sous https://www.visualstudio.com/en-us/docs/build/actions/agents/v2-windows. –