web-dev-qa-db-fra.com

VS2015 - Le package 'NuGetPackage' ne s'est pas chargé correctement

Vient d'ouvrir VS 2015 Enterprise RTM, a ouvert un projet en cours, en obtenant l'erreur suivante:


Microsoft Visual Studio


Le package 'NuGetPackage' ne s'est pas chargé correctement.

Le problème peut avoir été causé par un changement de configuration ou par l'installation d'une autre extension. Vous pouvez obtenir plus d'informations en examinant le fichier C:\Users\REDACTED\AppData\Roaming\Microsoft\VisualStudio\14.0\ActivityLog.xml.

Le redémarrage de Visual Studio peut aider à résoudre ce problème.

Continuer à afficher ce message d'erreur?


[Oui Non]


Le redémarrage n'a pas aidé. J'ai examiné le fichier journal et trouvé les sections suivantes relatives au nuget:

<entry>
  <record>555</record>
  <time>2015/07/20 16:06:34.364</time>
  <type>Error</type>
  <source>Extension Manager</source>
  <description>Extension will not be loaded because an extension with the same ID 
     &apos;Microsoft.Dev14.VsixTemplatesPackage.443cca91-ec20-41e5-a165-f28e56b89650&apos; 
     is already loaded at C:\PROGRAM FILES (X86)\Microsoft VISUAL STUDIO 14.0\COMMON7\IDE\
     EXTENSIONS\G2URSPAC.VAZ\...</description>
  <path>C:\PROGRAM FILES (X86)\Microsoft VISUAL STUDIO 14.0\COMMON7\IDE\EXTENSIONS\
     NUGETIFIEDEXTENSIBILITYTEMPLATES\</path>
</entry>
<entry>
  <record>556</record>
  <time>2015/07/20 16:06:34.364</time>
  <type>Error</type>
  <source>Extension Manager</source>
  <description>Extension will not be loaded because an extension with the same ID
     &apos;Microsoft.VisualStudio.TeamFoundation.TeamExplorer.Extensions&apos; is already
     loaded at C:\PROGRAM FILES (X86)\Microsoft VISUAL STUDIO 14.0\COMMON7\IDE\EXTENSIONS\
     B1NUOYPH.H2N\...</description>
  <path>C:\PROGRAM FILES (X86)\Microsoft VISUAL STUDIO 14.0\COMMON7\IDE\COMMONEXTENSIONS\
     Microsoft\TEAMFOUNDATION\TEAM Explorer\</path>
</entry>

Ce qui suggérerait une extension en double, mais cela ne semble pas être le cas dans le gestionnaire d'extensions.

Ceci est sur une machine sur laquelle VS2013 est également installé. Aucune des versions Preview/RC de VS2015 n’a été installée.

56
PhonicUK

Supprimer complètement NuGet via les extensions et les mises à jour, le redémarrage de VS puis la réinstallation de NuGet via les extensions et les mises à jour ont résolu le problème pour moi. Une réinstallation complète de VS n'était pas nécessaire.

62
PhonicUK

La mise à jour de la dernière version de Nuget semble avoir résolu le problème.

  1. Outils> Extensions et mises à jour

  2. Mises à jour> Galerie Visual Studio

  3. Cliquez Mise à jour sur l'option Nuget Package Manager

28

Après une installation complète de Visual Studio Professional 2015 à partir du site Web MSDN, j'ai exécuté VS2015 en tant qu'administrateur et ouvert la console du gestionnaire de packages à partir de Tools -> NuGet Package Manager... -> Package Manager Console et j'ai reçu cette erreur:

"Windows PowerShell updated your execution policy successfully, 
but the setting is overridden by a policy defined at a more 
specific scope. Due to the override, your Shell will retain its 
current effective execution policy of Unrestricted. 
Type "Get-ExecutionPolicy -List" to view your execution policy 
settings. For more information please see "Get-Help Set-ExecutionPolicy"

En suivant les étapes ci-dessus pour

1) Utilisez Tools -> Extensions and Updates... pour désinstaller NuGet Package Manager for Visual Studio 2015.

2) Redémarrez Visual Studio.

3) Utilisez Tools -> Extensions and Updates... à réinstallerNuGet Package Manager for Visual Studio 2015.

4) Redémarrez Visual Studio.

Désormais, lorsque j'ouvre la console du gestionnaire de packages, Powershell se charge correctement et tout va bien. Merci beaucoup pour cela!

6
bradykey

Gardez à l'esprit

Une réinstallation du gestionnaire de paquets NuGet ne semble PAS supprimer le fichier NuGet.Config existant contenu dans c:\utilisateurs\nom\AppData\Roaming\NuGet!

Le mien avait une section 'packageSources' manquante (pourquoi, je ne sais pas), mais comme ce fichier n'a pas été recréé, NuGet n'a toujours pas fonctionné!

Donc, entrez manuellement cette section ou supprimez ce fichier de configuration, puis réinstallez NuGet via les extensions et mises à jour qui en recréeront une nouvelle!

5
Marcel

Il semble que le nuget dans VS2015 soit configuré pour afficher uniquement les packages Microsoft. Pour pouvoir rechercher tous les paquets dans nuget.org, allez à Outils> Options> Gestionnaire de paquets NuGet> Sources de paquet, cliquez sur ajouter, mettez nuget.org comme nom et https://www.nuget.org/api/ v2 / en tant que source, puis cliquez sur OK. Désormais, dans Nuget Package Manager, vous pouvez sélectionner nuget.org (ou Tout) comme source de package et vous pourrez rechercher tous les packages (pas uniquement ceux provenant de Microsoft).

2

La suppression de tous les fichiers de ce dossier C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\imf5jbeu.eak semble avoir fonctionné pour moi.

2
CoOl

Le redémarrage de Visual Studio (2017) a résolu ce problème pour moi.

0
Yoky

J'ai eu le même problème et résolu avec la solution déjà mentionnée, mais avait besoin de plus de tentatives. Il est nécessaire de redémarrer complètement VS après avoir désinstallé et installé l'extension NuGetPackage. Sur mon système, cela ne fonctionnait pas tant que je n'ai pas fermé la solution ouverte. Espérons que l'extension NuGetPackage sera plus stable dans un avenir proche.

0
Andreas

J'ai trouvé ceci sur google, j'ai eu une erreur similaire: le paquet 'NuGetPackage' ne s'est pas chargé correctement.

Une erreur s'est produite lors de la lecture du fichier xxx. Il y a des paquets en double.

Vérifiez le fichier packages.config dans chaque projet, puis supprimez la ligne de package en double et tout devrait fonctionner.

0
live-love

Lors de la mise à niveau de projets avec des packages de nuget de Vx20XX à VS2015, vous pouvez rencontrer un problème avec les packages de nuget.

Exemple de message d'erreur: Ce projet référence des packages NuGet manquants sur cet ordinateur. Activez la restauration du paquet NuGet pour les télécharger. Pour plus d'informations, voir http://go.Microsoft.com/fwlink/?LinkID=322105 .

J'ai résolu mon problème en écrivant un petit programme qui fait restauration du package MSBuild-Integrated par rapport à la restauration automatique du package

Vous pouvez télécharger l'exécutable de l'outil ici .

S'il vous plaît laissez-moi savoir le résultat :-) !

Tool screenshot

Code comme référence:

<Window x:Class="FixNuGetProblemsInVs2015.MainWindow"
        xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.Microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:FixNuGetProblemsInVs2015"
        mc:Ignorable="d"
        Title="Fix NuGet Packages problems in Visual Studio 2015 (By Eric Ouellet)" Height="350" Width="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="*"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
        </Grid.RowDefinitions>

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"></ColumnDefinition>
            <ColumnDefinition Width="10"></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>

        <TextBlock Grid.Row="0" Grid.Column="0">Root directory of projects</TextBlock>
        <Grid Grid.Row="0" Grid.Column="2">
            <Grid.ColumnDefinitions>
                <ColumnDefinition></ColumnDefinition>
                <ColumnDefinition Width="Auto"></ColumnDefinition>
            </Grid.ColumnDefinitions>

            <TextBox Grid.Column="0" Name="DirProjects"></TextBox>
            <Button Grid.Column="1" VerticalAlignment="Bottom" Name="BrowseDirProjects" Click="BrowseDirProjectsOnClick">Browse...</Button>
        </Grid>

        <!--<TextBlock Grid.Row="1" Grid.Column="0">Directory of NuGet Packages</TextBlock>
        <Grid Grid.Row="1" Grid.Column="2">
            <Grid.ColumnDefinitions>
                <ColumnDefinition></ColumnDefinition>
                <ColumnDefinition Width="Auto"></ColumnDefinition>
            </Grid.ColumnDefinitions>

            <TextBox Grid.Column="0" Name="DirPackages"></TextBox>
            <Button Grid.Column="1"  Name="BrowseDirPackages" Click="BrowseDirPackagesOnClick">Browse...</Button>
        </Grid>-->

        <TextBox Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Name="TxtLog" IsReadOnly="True"></TextBox>

        <Button Grid.Row="3" Grid.Column="0" Click="ButtonRevertOnClick">Revert back</Button>
        <Button Grid.Row="3" Grid.Column="2" Click="ButtonFixOnClick">Fix</Button>
    </Grid>
</Window>


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Forms;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Xml;
using System.Xml.Linq;
using Application = System.Windows.Application;
using MessageBox = System.Windows.MessageBox;

/// <summary>
/// Applying recommanded modifications in section : "MSBuild-Integrated package restore vs. Automatic Package Restore"
/// of : http://docs.nuget.org/Consume/Package-Restore/Migrating-to-Automatic-Package-Restore
/// </summary>

namespace FixNuGetProblemsInVs2015
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            DirProjects.Text = @"c:\prj";
            // DirPackages.Text = @"C:\PRJ\NuGetPackages";
        }

        private void BrowseDirProjectsOnClick(object sender, RoutedEventArgs e)
        {
            FolderBrowserDialog dlg = new FolderBrowserDialog();
            dlg.SelectedPath = DirProjects.Text;
            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                DirProjects.Text = dlg.SelectedPath;
            }
        }

        //private void BrowseDirPackagesOnClick(object sender, RoutedEventArgs e)
        //{
        //  FolderBrowserDialog dlg = new FolderBrowserDialog();
        //  dlg.SelectedPath = DirPackages.Text;
        //  if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        //  {
        //      DirPackages.Text = dlg.SelectedPath;
        //  }
        //}

        // private string _dirPackages;

        private void ButtonFixOnClick(object sender, RoutedEventArgs e)
        {
            DoJob(false);
        }

        private void ButtonRevertOnClick(object sender, RoutedEventArgs e)
        {
            DoJob(true);
        }

        private void DoJob(bool revert = false)
        {
            TxtLog.Text = "";

            string dirProjects = DirProjects.Text;
            // _dirPackages = DirPackages.Text;

            if (!Directory.Exists(dirProjects))
            {
                MessageBox.Show("Projects directory does not exists: " + dirProjects);
                return;
            }

            //if (!Directory.Exists(_dirPackages))
            //{
            //  MessageBox.Show("Packages directory does not exists: " + _dirPackages);
            //  return;
            //}

            RecurseFolder(dirProjects, revert);
        }

        private void RecurseFolder(string dirProjects, bool revert = false)
        {
            if (revert)
            {
                Revert(dirProjects);
            }
            else
            {
                FixFolder(dirProjects);
            }

            foreach (string subfolder in Directory.EnumerateDirectories(dirProjects))
            {
                RecurseFolder(subfolder, revert);
            }
        }

        private const string BackupSuffix = ".fix_nuget_backup";

        private void Revert(string dirProject)
        {
            foreach (string filename in Directory.EnumerateFiles(dirProject))
            {
                if (filename.ToLower().EndsWith(BackupSuffix))
                {
                    string original = filename.Substring(0, filename.Length - BackupSuffix.Length);
                    if (File.Exists(original))
                    {
                        File.Delete(original);                                          
                    }
                    File.Move(filename, original);
                    Log("File reverted: " + filename + " ==> " + original);
                }
            }
        }

        private void FixFolder(string dirProject)
        {
            BackupFile(System.IO.Path.Combine(dirProject, "nuget.targets"));
            BackupFile(System.IO.Path.Combine(dirProject, "nuget.exe"));

            foreach (string filename in Directory.EnumerateFiles(dirProject))
            {
                if (filename.ToLower().EndsWith(".csproj"))
                {
                    FromProjectFileRemoveNugetTargets(filename);
                }
            }
        }

        private void BackupFile(string path)
        {
            if (File.Exists(path))
            {
                string backup = path + BackupSuffix;
                if (!File.Exists(backup))
                {
                    File.Move(path, backup);
                    Log("File backup: " + backup);
                }
                else
                {
                    Log("Project has already a backup: " + backup);
                }
            }
        }

        private void FromProjectFileRemoveNugetTargets(string prjFilename)
        {
            XDocument xml = XDocument.Load(prjFilename);

            List<XElement> elementsToRemove = new List<XElement>();

            foreach (XElement element in xml.Descendants())
            {
                if (element.Name.LocalName == "Import")
                {
                    var att = element.Attribute("Project");
                    if (att != null)
                    {
                        if (att.Value.Contains("NuGet.targets"))
                        {
                            elementsToRemove.Add(element);
                        }
                    }
                }

                if (element.Name.LocalName == "Target")
                {
                    var att = element.Attribute("Name");
                    if (att != null && att.Value == "EnsureNuGetPackageBuildImports")
                    {
                        elementsToRemove.Add(element);
                    }
                }
            }

            if (elementsToRemove.Count > 0)
            {
                elementsToRemove.ForEach(element => element.Remove());
                BackupFile(prjFilename);
                xml.Save(prjFilename);
                Log("Project updated: " + prjFilename);
            }
        }

        private void Log(string msg)
        {
            TxtLog.Text += msg + "\r\n";
        }

    }
}
0
Eric Ouellet

Allez dans:

Outils
Extensions et mises à jour

Insérer dans le champ de recherche à droite Nuget Package Manager et le configurer (configuration complète).

Ensuite, vous aurez la gestion des paquets Nuget dans la section Outils.

0
JAN