Programing

VS2015- 'NuGetPackage'패키지가 올바르게로드되지 않았습니다.

lottogame 2020. 12. 30. 07:39
반응형

VS2015- 'NuGetPackage'패키지가 올바르게로드되지 않았습니다.


방금 VS 2015 Enterprise RTM을 열고 기존 작업 프로젝트를 열고 다음 오류가 발생했습니다.


마이크로 소프트 비주얼 스튜디오


'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 빌드는 설치되지 않았습니다.


확장 및 업데이트를 통해 NuGet을 완전히 제거하고 VS를 다시 시작한 다음 확장 및 업데이트를 통해 NuGet을 다시 설치하면 문제가 해결되었습니다. 전체 VS 재설치가 필요하지 않았습니다.


Nuget을 최신 버전으로 업데이트하면 문제가 해결 된 것 같습니다.

  1. 도구> 확장 및 업데이트

  2. 업데이트> Visual Studio 갤러리

  3. Nuget 패키지 관리자 옵션에서 업데이트클릭하십시오.


MSDN 웹 사이트에서 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이 ​​올바르게로드되고 모든 것이 좋습니다. 정말 감사합니다!


명심하십시오

NuGet 패키지 관리자의 다시 설치하는 않는 NOT C에서 개최 된 기존 NuGet.Config 파일을 제거하는 것 : \ 사용자 \ 이름 \의 AppData \ 로밍 \ NuGet을!

내 'packageSources'섹션이 누락되었지만 (왜, 모르겠습니다)이 파일이 다시 생성되지 않았기 때문에 NuGet이 여전히 작동하지 않았습니다!

따라서이 섹션을 수동으로 입력하거나이 구성 파일을 제거한 다음 확장 및 업데이트를 통해 NuGet을 다시 설치하면 새로운 파일이 다시 생성됩니다!


이 폴더에서 모든 파일을 삭제하는 것이 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\imf5jbeu.eak저에게 효과적이었습니다.


VS2015의 nuget은 Microsoft 패키지 만 표시하도록 설정된 것 같습니다. nuget.org의 모든 패키지를 검색하려면 도구> 옵션> NuGet 패키지 관리자> 패키지 소스로 이동하여 추가를 클릭하고 nuget.org를 이름으로, https://www.nuget.org/api/v2/ 를 소스로 입력합니다. 을 클릭 한 다음 확인을 클릭합니다. 이제 Nuget 패키지 관리자에서 nuget.org (또는 모두)를 패키지 소스로 선택할 수 있으며 모든 패키지 (Microsoft에서 제공하는 패키지뿐만 아니라)를 검색 할 수 있습니다.


나는 같은 문제가 있었고 이미 언급 한 솔루션으로 해결했지만 더 많은 시도가 필요했습니다. NuGetPackage 확장을 제거하고 설치 한 후 VS를 완전히 다시 시작해야하며 시스템에서 열린 솔루션을 닫을 때까지 작동하지 않았습니다. 바라건대 NuGetPackage 확장이 가까운 장래에 더 안정되기를 바랍니다.


Nuget 패키지가있는 프로젝트를 Vx20XX에서 VS2015로 업그레이드 할 때 Nuget 패키지에 문제가있을 수 있습니다.

오류 메시지의 예 :이 프로젝트는이 컴퓨터에없는 NuGet 패키지를 참조합니다. NuGet 패키지 복원을 활성화하여 다운로드합니다. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오 .

MSBuild 통합 패키지 복원과 자동 패키지 복원 을 수행하는 작은 프로그램을 작성하는 문제를 해결했습니다.

여기 에서 도구의 실행 파일을 다운로드 할 수 있습니다 .

결과를 알려주세요 :-)!

도구 스크린 샷

참조 코드 :

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

    }
}

들어가다 :

도구
확장 및 업데이트

오른쪽의 검색 창에 삽입 Nuget Package Manager하고 설정합니다 (전체 설정).

그런 다음 도구 섹션에 Nuget 패키지 관리가 있습니다.


Google에서 이것을 찾았고 비슷한 오류가 발생했습니다. 'NuGetPackage'패키지가 올바르게로드되지 않았습니다.

xxx 파일을 읽는 동안 오류가 발생했습니다. 중복 된 패키지가 있습니다.

모든 프로젝트에서 packages.config 파일을 확인하고 중복 된 패키지 줄을 제거하면 작동합니다.


Visual Studio (2017)를 다시 시작하면이 문제가 해결되었습니다.

참조 URL : https://stackoverflow.com/questions/31521438/vs2015-the-nugetpackage-package-did-not-load-correctly

반응형