148 votes

supprimer le paquet nuget restore de la solution

J'ai ajouté la fonction récente de restauration des paquets NuGet à une solution en utilisant 'Enable NuGet Package Restore' : http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

Cependant, il a cassé mon serveur de construction et je n'ai pas eu le temps de le réparer, j'ai donc voulu le supprimer. Il n'y a pas d'option pour cela pour autant que je sache, donc j'ai supprimé la ligne suivante manuellement de tous mes fichiers *.csproj :

<Import Project="$(SolutionDir)\.nuget\nuget.targets" />

Le problème maintenant est que chaque fois que mes fichiers *.csproj sont extraits ou que j'ouvre ma solution, la ligne est automatiquement ajoutée à nouveau, cassant ma construction si je l'introduis accidentellement :(

Une idée sur la manière de le supprimer définitivement ?

MISE A JOUR : malgré la réponse ci-dessous, le problème persiste lorsque l'on ouvre la solution, quelqu'un a-t-il le même problème ?

212voto

Zidad Points 3756

Je n'ai pas bien regardé, il y a une autre propriété ajoutée aux fichiers du projet :

<RestorePackages>true</RestorePackages>

Il suffit de supprimer manuellement cette ligne ainsi que toutes les autres de tous les fichiers *.csproj :

  <Import Project="$(SolutionDir)\.nuget\nuget.targets" />

UPDATE :

Il s'avère qu'il s'agit d'un petit problème persistant, si vous modifiez manuellement les fichiers de votre projet, assurez-vous de fermer la solution et de supprimer toutes les lignes du projet en une seule fois Sinon, ils sont simplement ajoutés une fois que le projet est rechargé...

MISE À JOUR2 :

Supprimer également le dossier .nuget de la racine de la solution

UPDATE3 :

Une version ultérieure de NuGet ajoute une autre section que vous devez supprimer :

 <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
  </Target>

Mise à jour4

A l'intérieur de la NuGet.Targets situé dans le .nuget il existe une autre section qui est ajoutée aux nouveaux projets... mettez-la à faux.

<!-- We need to ensure packages are restored prior to assembly resolve -->
<BuildDependsOn Condition="$(RestorePackages) == 'false'">
    RestorePackages;
    $(BuildDependsOn);
</BuildDependsOn>

48voto

Andreas Larsen Points 2115

Pour désactiver la restauration des paquets Nuget :

  1. Supprimer le dossier .nuget
  2. Supprimer des lignes spécifiques de tous les fichiers .csproj

Lignes à supprimer :

<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
<RestorePackages>true</RestorePackages>

Remarque : veillez à effectuer toutes les modifications en une seule fois avant de recharger la solution, sinon elles seront ajoutées.

Ceci est basé sur l'article suivant : http://bartwullems.blogspot.no/2012/08/disable-nuget-package-restore.html

Vous pouvez également vérifier que cette option est désactivée : http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

8voto

orad Points 978

N'est-ce pas ce cadre-là ?

Options... -> Gestionnaire de paquets Nuget -> [décocher] Autoriser Nuget à télécharger les paquets manquants

enter image description here

J'utilise Visual Studio Professional + Resharper 8.2

5voto

James Bradt Points 130

Les solutions qui utilisent actuellement la restauration de paquets intégrée à MSBuild peuvent migrer vers la restauration automatique de paquets. D'après ce que j'ai compris, cela devrait aider ceux qui rencontrent des problèmes de construction de CI. (Veuillez me corriger si je me trompe).

Veuillez vous référer au document sur le site web nuget : Migration des solutions MSBuild-Integrated pour utiliser la restauration automatique des paquets à l'adresse suivante http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore

Vous y trouverez des informations sur la conversion avec et sans TFS.

David Ebbo a également publié des informations à l'adresse suivante http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html

2voto

Daryl Points 8806

J'ai suivi la solution acceptée sans succès en utilisant 2012. Ceci a pourtant fonctionné,

  1. Fermer complètement le VS
  2. Mettre à jour le <RestorePackages>true</RestorePackages> a <RestorePackages>false</RestorePackages> et supprimer le <Import Project="$(SolutionDir)\.nuget\nuget.targets" /> ligne
  3. Il a également renommé le nuget.exe a nuget.exe.NotExe

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X