La restauration du paquet Visual Studio 2013 NuGet ne fonctionne pas à partir de la ligne de commande (pas msbuild mais vcvarsall.bat)

Visual Studio 2013 a introduit la nouvelle méthode de restauration des paquets sans MSBuild et l'ancienne façon d'activer la restauration des paquets NuGet est obsolète maintenant.

Après la migration d'un projet, comme indiqué dans Nuget docs , lors de la création d'un package dans VisualStudio, la restauration fonctionne, mais lorsque la génération est exécutée à l'aide de la ligne de commande VisulStudio et que les packages d'événements vcvarsall.bat ne sont pas restaurés.

Est-ce que je manque quelque chose?


Conclusion

Well, if you invoke Visual Studio from command line, package restore is not called. Use manual package restore with nuget.exe

nuget restore Solution.sln

Pour que cette ligne particulière fonctionne, vous devez installer le système NuGet et ajouter le chemin d'accès au dossier binaires dans la variable d'environnement PATH

0

1 Réponses

Sur la ligne de commande, vous devez exécuter manuellement Nuget restore solution.sln avant d'appeler msbuild.exe . C'est juste un petit pas avant que la construction ne fonctionne.

Visual Studio le fait automatiquement et l'appel à nuget restore est également exécuté par Team Build dans le cadre du workflow.

0
ajouté
Je n'appelle pas manuellement msbuild.exe, j'appelle vcvarsall.bat qui lance le processus de Visual Studio, pas msbuild.
ajouté l'auteur aershov, source
@Kiliman: Une décision très intéressante de ne valider que les fichiers .targets du dossier du paquet, afin que les imports de tâches puissent fonctionner. Mais je ne peux pas dire, si cela n'aura aucun impact négatif à l'avenir, donc je vais probablement rester avec la restauration de nuget.
ajouté l'auteur aershov, source
Vous pouvez également terminer la ligne de commande de restauration de nuget dans un projet MSBuild. Voir docs.nuget.org/consume/package-restore/team-build
ajouté l'auteur Kiliman, source