2017-10-16 19 views
0

J'essaye de faire fonctionner la nouvelle fonction de restauration de MSBuild NuGet et d'avoir un problème étrange.MSBuild 15 NuGet restore and build

Si je fais:

msbuild.exe mySolution.sln /p:Configuration=Release 

Je reçois une erreur sur les paquets manquants. C'est un comportement attendu. Cependant, si je fais:

msbuild.exe mySolution.sln /p:Configuration=Release /t:restore 

MSBuild « réussit » mais juste crée un dossier obj avec des dossiers relatifs à la restauration NuGet pas dire bin \ Release dossier \.

Afin de restaurer et build je dois émettre les deux commandes ci-dessus (restaurer d'abord, évidemment).

J'ai mis à niveau tous les fichiers packages.config pour utiliser la dernière version de PackageReference dans le fichier .csproj.

Est-il possible à la fois restaurer et construire en utilisant une seule commande?

Répondre

3

MSBuild 15.5 présentera a /restore flag qui implémente cette fonctionnalité.

Avant cela, il est théoriquement possible d'exécuter à la fois une restauration et la construction de la même invocation (/t:Restore;Build), mais il est dangereuse que MSBuild peut mettre en cache les fichiers du projet et ne pas voir les modifications apportées par un NuGet de restauration. L'option /restore effacera toutes les caches affectées avant de reprendre avec la version normale.

+0

Merci. Y a-t-il un ETA sur 15.5? – Tom

+0

Aucune idée mais un aperçu de VS 2017 15.5 est déjà disponible –

+0

Nous faisons une restauration de nuget spécifique sur notre solution et nous vivons juste avec. –