web-dev-qa-db-ja.com

VS2015-「NuGetPackage」パッケージが正しくロードされませんでした

VS 2015 Enterprise RTMを開き、既存の作業プロジェクトを開いたところ、次のエラーが発生しました。


Microsoft Visual Studio


「NuGetPackage」パッケージが正しくロードされませんでした。

この問題は、構成の変更または別の拡張機能のインストールが原因である可能性があります。ファイルC:\Users\REDACTED\AppData\Roaming\Microsoft\VisualStudio\14.0\ActivityLog.xmlを調べると、詳細情報を取得できます。

Visual Studioを再起動すると、この問題を解決できる場合があります。

このエラーメッセージを表示し続けますか?


[はい・いいえ]


再起動しても解決しませんでした。ログファイルを調べたところ、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>

これは、拡張機能の重複を示唆しますが、拡張機能マネージャーではそうではないようです。

これは、VS2013もインストールされているマシン上にあります。 VS2015のプレビュー/ RCビルドはインストールされていません。

56
PhonicUK

拡張機能と更新プログラムを使用してNuGetを完全に削除し、VSを再起動してから、拡張機能と更新プログラムを使用してNuGetを再インストールすると、問題が解決しました。完全なVS再インストールは必要ありませんでした。

62
PhonicUK

Nugetを最新バージョンに更新すると、問題は解決したようです。

  1. [ツール]> [拡張機能と更新]

  2. 更新> Visual Studio Gallery

  3. Nuget Package Managerオプションでpdateをクリックします

MSDN WebサイトからVisual Studio Professional 2015を完全にクリーンインストールした後、VS2015を管理者として実行し、Tools -> NuGet Package Manager... -> Package Manager Consoleからパッケージマネージャーコンソールを開き、次のエラーを受け取りました。

"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"

上記の手順に従って

1)Tools -> Extensions and Updates...を使用してNuGet Package Manager for Visual Studio 2015をアンインストールします。

2)Visual Studioを再起動します。

3)Tools -> Extensions and Updates...を使用して再インストールNuGet Package Manager for Visual Studio 2015にします。

4)Visual Studioを再起動します。

これで、パッケージマネージャーコンソールを開くと、Powershellが正しく読み込まれ、すべてが正常に実行されます。これをどうもありがとう!

6
bradykey

心に留めておく

NuGetパッケージマネージャーの再インストールではNOTはc:\ users\name\AppData\Roaming\NuGet!に保持されている既存のNuGet.Configファイルを削除するようです。

私には「packageSources」セクションがありませんでした(なぜかわかりません)が、このファイルが再作成されなかったため、NuGetはまだ機能しませんでした!

したがって、このセクションを手動で入力するか、この構成ファイルを削除してから、拡張機能と更新プログラムを使用してNuGetを再インストールすると、新しいものが再作成されます。

5
Marcel

VS2015のnugetは、Microsoftパッケージのみを表示するように設定されているようです。 nuget.orgですべてのパッケージを検索できるようにするには、[ツール]> [オプション]> [NuGetパッケージマネージャー]> [パッケージソース]に移動し、[追加]をクリックして、名前としてnuget.orgを入力し、 https://www.nuget.org/api/ v2 / Sourceとして、[OK]をクリックします。 Nuget Package Managerでは、パッケージソースとしてnuget.org(またはAll)を選択でき、すべてのパッケージ(Microsoftからのパッケージだけでなく)を検索できます。

2

このフォルダーC:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\imf5jbeu.eakからすべてのファイルを削除すると、うまくいったようです。

2
CoOl

Visual Studio(2017)を再起動すると、これが修正されました。

0
Yoky

私は同じ問題を抱えていて、すでに述べた解決策でそれを解決しましたが、さらに試行が必要でした。 NuGetPackage拡張機能をアンインストールしてインストールした後、VSを完全に再起動する必要があります。システムでは、開いているソリューションを閉じるまで機能しませんでした。 NuGetPackage拡張機能が近い将来より安定することを願っています。

0
Andreas

Googleでこれを見つけましたが、同様のエラーが発生しました: 'NuGetPackage'パッケージが正しくロードされませんでした。

ファイルxxxの読み取り中にエラーが発生しました。パッケージが重複しています。

すべてのプロジェクトでpackages.configファイルを確認し、重複するパッケージ行を削除します。これで機能するはずです。

0
live-love

Nugetパッケージを含むプロジェクトをVx20XXからVS2015にアップグレードする場合、nugetパッケージに問題がある可能性があります。

エラーメッセージの例:このプロジェクトは、このコンピューターにないNuGetパッケージを参照しています。 NuGet Package Restoreを有効にしてダウンロードします。詳細については、 http://go.Microsoft.com/fwlink/?LinkID=322105 を参照してください。

MSBuild-Integrated package restore vs. Automatic Package Restore を実行する小さなプログラムを作成する問題を修正しました==

ツールの実行可能ファイル こちら をダウンロードできます。

結果を教えてください:-)!

Tool screenshot

参照としてのコード:

<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

に入る :

道具
拡張機能と更新

右側の検索ボックスに挿入Nuget Package Managerして設定します(フルセットアップ)。

その後、[ツール]セクションに[Nugetパッケージの管理]が表示されます。

0
JAN