Wie kann ich mithilfe von msbuild-ohne-Projekt.Vermögenswerte.json oder nuget restore?
Habe ich eine .Net-Standard-Projekt in eine Lösung und ich möchte msbuild zu bauen es auf unserem server zu bauen. Wenn ich nicht laufen "nuget restore" Erstens bekomme ich die Fehlermeldung "Projekt.Vermögenswerte.json' nicht gefunden. Führen Sie ein NuGet package restore". Ich habe bereits alle notwendigen NuGet-Pakete in den "packages" - Ordner an der Lösung-Ebene. Ich möchte irgendwie zeigen, dass msbuild sollten benutzen Sie einfach die Dateien in den lokalen "packages" - Ordner anstatt zu versuchen, re-download der Dateien. Wie kann ich dies tun? Danke.
InformationsquelleAutor Eric | 2017-11-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
.NET-Standard-Projekte verwenden Sie nicht die
packages
Ordner in der Projektmappe. Dies ist der "alte" Weg von verweisen auf NuGet-Pakete durchpackages.config
. Der neue Weg -PackageReference
Elemente in das Projekt nutzt eine gemeinsame Globale packages-Ordner im home-Verzeichnis des Benutzers. Dieproject.assets.json
regeneriert werden muss, auf der build-Maschine mit dem aufgelösten Wege zu diesem gemeinsamen cache, auch wenn keine Pakete heruntergeladen werden müssen. In der Tat, ein NuGet restore kann auch nicht treffen müssen, das Netzwerk, wenn alle Pakete sind bereits auf der Maschine.Ich würde einen Blick auf die Verwendung vielleicht die RestoreFallbackFolders Eigenschaft, die verwendet werden können, um einen Ordner anzugeben, die Wiederherstellung bei der Wiederherstellung der NuGet-Pakete - github.com/NuGet/Home/wiki/%5BSpec%5D-NuGet-settings-in-MSBuild - oder sich mit einem NuGet.Config-Datei, die mit Ihrer Lösung, die die Paket-Quellen und Anmeldeinformationen, die Sie benötigen.
auch haben Sie einen Blick auf stackoverflow.com/questions/43687058/... - es gibt ein paar Möglichkeiten, um zu zählen .nupkg Dateien oder die "global-cache" in einem git repo. Aber eine Globale NuGet-Konfiguration auf build-agents können auch angeben, feeds mit Anmeldeinformationen. Und für VSTS sollte es sein, Wege zu lassen-agents den Zugriff feeds (weiß nicht, wie genau obwohl)
Aber TL;DR die Vermögens-Datei und der generierten .runtimeconfig.dev.json-Datei (wenn Sie möchten, führen Sie tests) müssen enthalten Baumaschine bestimmte Pfade in beiden Fällen - ob es
C:\Users\builduser\.nuget\packages
oderC:\agent\_work\2\s\checkedInGlobalCache
was würdest du sagen, wenn ich das sage. Befehl-Linie zu bauen, die Lösung ausfällt (netstandard Projekt mit
PackageReference
). dann öffne ich die Lösung in IDEproject.assets.json
generiert wird. Nun weiß ich nichts, und schließen Sie IDE. Re-run die Kommandozeile funktioniert. also, zurück zur ursprünglichen Frage, wie zu vermeiden wiederherstellen/öffnen IDE?InformationsquelleAutor Martin Ullrich
Die beste Lösung habe ich mit kommen, beinhaltet ein NuGet restore, aber ich habe den lokalen Ordner packages als einer der NuGet-repositories in nuget.config und jetzt ich don ' T haben, zu erreichen, um alle remote-repositories. Das ist nicht ganz das, was ich wollte, aber ist es mir erlaubt, Fortschritte zu erzielen.
InformationsquelleAutor Eric