Visual Studio 2017의 종속성에 대한 노란색 경고 삼각형은 무엇을 의미합니까?


110

방금 PCL 라이브러리를 새 .Net Standard 라이브러리로 변환했으며 아래에 표시된 종속성에 노란색 경고 삼각형이 있습니다.

여기에 이미지 설명 입력

변환하는 동안 종속성을 포함하여 모든 너겟 패키지를 가져와 중복 될 수 있습니다.

노란색 경고 삼각형이 무엇을 나타내는 지 어떻게 알 수 있습니까?

편집하다

빌드 로그 :

NuGet이 빌드 중에 패키지를 복원하지 못하도록하려면 Visual Studio 옵션 대화 상자를 열고 패키지 관리자 노드를 클릭 한 다음 '누가 빌드 중에 누락 된 패키지를 다운로드하도록 허용'을 선택 취소합니다. NU1605 : 감지 된 패키지 다운 그레이드 : NUnit 3.8.1에서 2.6.4로. 프로젝트에서 직접 패키지를 참조하여 다른 버전을 선택하십시오.
MyProj.UI.Tests-> MyProj.Core.Tests-> NUnit (> = 3.8.1)
MyProj.UI.Tests-> NUnit (> = 2.6.4) NU1605 : 감지 된 패키지 다운 그레이드 : NUnit 3.8.1에서 2.6.4로. 프로젝트에서 직접 패키지를 참조하여 다른 버전을 선택하십시오. MyProj.UI.Tests.iOS-> MyProj.UI.Tests-> MyProj.Core.Tests-> NUnit (> = 3.8.1) MyProj.UI.Tests.iOS-> NUnit (> = 2.6.4) NU1605 : 감지 된 패키지 다운 그레이드 : NUnit을 3.8.1에서 2.6.4로. 프로젝트에서 직접 패키지를 참조하여 다른 버전을 선택하십시오.
MyProj.UI.Tests.Android-> MyProj.UI.Tests-> MyProj.Core.Tests-> NUnit (> = 3.8.1) MyProj.UI.Tests.Android-> NUnit (> = 2.6.4)


58
그들에 @Nkosi 가져 가면 나를 위해 아무것도 표시되지 않습니다
를 user1

1
그런 다음 오류 창 확인
Nkosi

2
이러한 참조는 프로그램을 빌드 할 때 사용됩니다. 하지만 IDE에서도 중요하므로 IntelliSense를 제공하려면 문제를 해결해야합니다. 실패하면 경고 삼각형이 표시됩니다. 빌드> 빌드를 사용하여 오류 메시지를받습니다.
Hans Passant

33
이 일이 발생했을 때 빌드 경고가 없었습니다. 경고 아이콘이 UI에 멈췄습니다. 프로젝트를 언로드하고 다시로드하면 문제가 해결되었습니다.
StackOverthrow 2018

1
@TKK : 저는 이것이 몇 분 동안 만 지속될 것이라고 생각합니다. 그런 다음 UI에 경고 삼각형이 나타납니다. 적어도 그것은 솔루션을 다시 연 후에 나에게 일어난 일입니다. 처음에는 고쳐 졌다고 생각했지만 갑자기 경고 삼각형이 다시 나타났습니다.
PussInBoots

답변:


78

진부하게 들리면 VS를 재 구축 한 다음 다시 시작해보세요.


5
고전적인 "다시 시작"솔루션을 상기시켜 주셔서 감사합니다. :). 지난 1 시간 동안 솔루션을 구축 할 때 VS가 내 패키지를 제거하는 이유를 궁금해했습니다. VS를 다시 시작했고 모든 것이 예상대로 작동했습니다. / 우
라이언 E.

1
고전적인 "종료"는 항상 세상의 모든
악의

정확히 오늘 Visual Studio 2019를 최신 버전 (16.5.1)으로 업데이트했습니다. 문제는 여전히 존재하지만이 솔루션은 여전히 ​​작동합니다. :)
Willy David Jr

껐다가 다시 켜십시오 :-D
Don Ch

63

운영 dotnet restore복잡한 조작을 수행하기 전에 하면 오류 창이나 솔루션 탐색기보다 훨씬 더 많은 정보가 제공됩니다.

패키지 관리자 콘솔에서이 명령을 실행할 수 있습니다.

도구> NuGet 패키지 관리자> 패키지 관리자 콘솔


4
VS를 다시 시작하는 대신 솔루션을 다시 열면 저에게도 효과적이었습니다.
Quido

dotnet 복원을 수행하는 이유는 무엇입니까? 빌드가 그렇게 할 필요가 없습니까?
pabrams

11

빌드 로그에서 나는 이것을 발견했습니다.

C : \ Program Files \ dotnet \ sdk \ 2.0.2 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.NET.Sdk.DefaultItems.targets (199,5) : 경고 : 'NETStandard.Library'에 대한 PackageReference는 프로젝트에 포함됩니다. 이 패키지는 .NET SDK에서 암시 적으로 참조되며 일반적으로 프로젝트에서 참조 할 필요가 없습니다. 자세한 내용은 https://aka.ms/sdkimplicitrefs를 참조 하십시오.

따라서 여기에 나열된 .Net Standard 너겟 에 대한 종속성으로 나열된 모든 패키지를 제거 했습니다.

.NETStandard 1.1

  • Microsoft.NETCore.Platforms (> = 1.1.0)

  • System.Collections (> = 4.3.0)

  • System.Collections.Concurrent (> = 4.3.0)

  • System.Diagnostics.Debug (> => 4.3.0)

  • System.Diagnostics.Tools (> = 4.3.0)

  • System.Diagnostics.Tracing (> = 4.3.0)

  • System.Globalization (> = 4.3.0)

  • System.IO (> = 4.3.0)

  • System.IO.Compression (> = 4.3.0)

  • System.Linq (> = 4.3.0)

  • System.Linq.Expressions (> = 4.3.0)

  • System.Net.Http (> = 4.3.2)

  • System.Net.Primitives (> = 4.3.0)

  • System.ObjectModel (> = 4.3.0)

  • System.Reflection (> = 4.3.0)

  • System.Reflection.Extensions (> = 4.3.0)

  • System.Reflection.Primitives (> = 4.3.0)

  • System.Resources.ResourceManager (> = 4.3.0)

  • System.Runtime (> = 4.3.0)

  • System.Runtime.Extensions (> = 4.3.0)

  • System.Runtime.InteropServices (> = 4.3.0)

  • System.Runtime.InteropServices.RuntimeInformation (> => 4.3.0)

  • System.Runtime.Numerics (> = 4.3.0)

  • System.Text.Encoding (> = 4.3.0)

  • System.Text.Encoding.Extensions (> = 4.3.0)

  • System.Text.RegularExpressions (> = 4.3.0)

  • System.Threading (> = 4.3.0)

  • System.Threading.Tasks (> = 4.3.0)

  • System.Xml.ReaderWriter (> = 4.3.0)

  • System.Xml.XDocument (> = 4.3.0)

그리고 노란색 경고가 사라졌습니다.

여기에서 : https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-standard-2-0/

또한 아래와 같이 NoWarn 속성을 사용할 수 있습니다.

<ItemGroup>
  <PackageReference Include="Huitian.PowerCollections" Version="1.0.0" NoWarn="NU1701" />
</ItemGroup>

8

노란색 삼각형은 패키지 물리적 파일이 없어져서 더 이상 하드 드라이브에서 사용할 수 없음을 의미합니다.

이는 일반적으로 get latest versionTFS에서 소스 제어에 대한 요청을 보낼 때, 특히 새 컴퓨터를 사용하고 TFS 서버에서 프로젝트 코드를 가져 오려는 경우에 발생합니다.

또한 low quality internet connection거의 항상 데이터 손실 또는 다운로드 파일 손상 으로 인해 발생할 수 있습니다 .

여기에 이미지 설명 입력

문제에 몇 개의 패키지가 누락 된 경우 packages.config파일을 수정하고 이러한 패키지를 제거 packages.config하고 nuget 패키지 관리자를 통해 누락 된 패키지를 다시 설치할 수 있습니다.

그러나 문제가 몇 개 이상의 패키지가 누락 된 경우 누락 된 패키지를 검색하는 가장 빠르고 빠른 방법은 다음과 같습니다.

  1. Visual Studio의 새 인스턴스 열기
  2. 패키지가 누락 된 것과 동일한 프로젝트 유형으로 새 프로젝트 솔루션을 만듭니다 (예 : 개별 사용자 계정이있는 ASP.Net MVC).
  3. 이전 프로젝트 솔루션의 패키지 버전과 일치하도록 새 프로젝트의 패키지를 최신으로 업데이트하십시오.
  4. 파일 탐색기를 열고 생성 한 새 솔루션의 패키지 폴더로 이동합니다.
  5. 폴더의 모든 내용을 복사 Packages, 모두를 선택하여 폴더 안에 자체 폴더 내용 만 패키지를 복사하지 마십시오
  6. 이전 솔루션 (패키지가 누락 된 솔루션)에서 Packages기존 항목을 덮어 쓰는 폴더에 붙여 넣습니다 .
  7. 솔루션 탐색기에서 패키지 폴더로 이동하여 확장 한 다음 새로 고침 버튼을 클릭하여 누락 된 패키지 중 많은 부분이 이제 노란색 삼각형없이 표시되는지 확인합니다.
  8. 마지막으로 새 솔루션을 만들 때 기본적으로 포함되지 않는 몇 가지 누락 된 패키지로 끝납니다. 설치된 패키지를 확인하기 위해 packages.config 파일 (nuget 패키지 관리자가 읽는 파일)에서 해당 패키지를 제거해야합니다. nuget 패키지 관리자를 사용하여 새로 설치하십시오.

참고 그래서 이것에 대한 쉬운 해결책을 기대하지 않는다, 프로젝트에서 파일을 누락과 관련된 이러한 문제를 해결하기 위해 항상 열심히, 그리고 개발자의 경험에 따라 달라집니다.

오류의 원인에 대해 Microsoft는 버그라고 말하지만 모든 버전의 Visual Studio에서 발생할 수 있습니다.


1
프로젝트와 관련하여 Visual Studio (2019)를 다시 시작하면 문제가 해결되는 것 같습니다.
Steve Smith

packages.coinfig
pabrams

7

이 문제가있는 새로운 사람을 위한 문서화 목적 시도하면 기억할 것입니다 : D

이동하는 경우 : 도구> NuGet 관리자> 구성. 그리고 "너겟 허용 ...."및 "자동 확인 ...."이 표시됩니다.

"모든 NuGet 캐시 지우기" 버튼을 클릭하면됩니다.

그게 다야, 위험 할 수있는 것보다 매뉴얼의 생각을 편집 할 필요가 없습니다. 여기에서 설명하는 것보다 몇 가지 단계를 수행해야하는 데 사용하고, Microsoft 문서의 5 단계 이상을 시도해보십시오. 이 문제는 여기에서 확인할 수 있습니다. https://docs.microsoft.com/es-es/nuget/consume-packages/package-restore#restore-packages-automatically-using-visual-studio

하지만 캐시를 정리하면 모든 문제가 해결됩니다.


이 대답 체인까지 더 투표를해야한다 ..
GregD

7

경고 아이콘이 있지만 경고가없고 실제로 잘못된 것이없는 경우 프로젝트를 마우스 오른쪽 버튼으로 클릭> 프로젝트 언로드> 프로젝트를 다시 마우스 오른쪽 버튼으로 클릭> 프로젝트 다시로드. 아이콘이 잠시 나타났다가 Visual Studio 2019에서 지워졌습니다. 이렇게하면 전체 Visual Studio가 다시 시작되지 않습니다.


2

이상하게도 내 .Net Core 3 프로젝트 에서는 프로젝트 컨텍스트에서 "Load project dependencies" 를 클릭하기 만하면 경고 아이콘이 사라졌습니다.

유용한 스크린 샷 :

여기에 이미지 설명 입력


1

방금 Visual Studio를 16.4.4로 업데이트했는데 문제가 해결되었습니다. 참조는 고정되어 있으며 더 이상 노란색 삼각형이 없습니다. 감사.


1

프로젝트를 복제 할 때이 오류가 발생했습니다. 주된 이유는 Nuget 패키지를 복원 할 수 없었기 때문에 nuget.org를 활성 리소스로만 만들어 해결책을 찾았습니다.

여기에 이미지 설명 입력

Nuget.org를 활성 리소스로만 선택해야합니다.

도움이되기를 바랍니다.


1

노란색 느낌표는 일반적으로 누락 된 참조 또는 지원되지 않는 dll 때문입니다. 저장소를 복제하면 많은 너깃 패키지가 노란색 느낌표를 표시 할 가능성이 있습니다. 프로젝트 버전이 올바른지 확인했지만 여전히 문제가있는 경우 아래 해결 방법을 시도 할 수 있습니다.

패키지 관리자 콘솔에서이 문제가 발생한 프로젝트를 선택한 후 다음 명령을 입력합니다.

Update-Package -Reinstall

그러면 모든 패키지가 강제로 다시 설치됩니다. 이 명령은 NuGet 패키지 버전을 업데이트하지 않고 강제로 다시 설치합니다.

이 솔루션은 제 경우에 효과가있었습니다. VS2019를 사용하고 있습니다. 이것이 다른 사람들에게도 도움이되기를 바랍니다.


0

다른 모든 패키지가로드되지 않도록하는 패키지가 하나있을 수 있습니다. .csproj의 패키지를 하나씩 주석 처리하고 어떤 것이 문제인지 알아 내십시오.


0

표시된 답변에Microsoft.NETCore.Platforms 명시된대로 제거하려고 하면 다음 오류가 발생합니다.

'NETStandard.Library.2.0.3'이 종속되어 있으므로 'Microsoft.NETCore.Platforms.1.1.0'을 제거 할 수 없습니다.

다른 패키지를 제거했지만 여전히 NETSDK1023오류가 발생합니다.

'NETStandard.Library'에 대한 PackageReference가 프로젝트에 포함되었습니다. 이 패키지는 .NET SDK에서 암시 적으로 참조되며 일반적으로 프로젝트에서 참조 할 필요가 없습니다. 자세한 내용은 https://aka.ms/sdkimplicitrefs를 참조 하십시오.

이제 .csproj를 편집하고 다음 부분을 삭제했습니다.

<PackageReference Include="NETStandard.Library" Version="2.0.3" />

권장 사항의 https://aka.ms/sdkimplicitrefs 에 명시된대로 :

.NET Core 또는 .NET Standard를 대상으로하는 경우 프로젝트 파일 의 항목을 통해 Microsoft.NETCore.App또는 NETStandard.Library메타 패키지에 대한 명시 적 참조가 없어야 <PackageReference>합니다.

이제 경고가 사라졌습니다!


0

위의 어느 것도 나를 위해 일하지 않았습니다. VS에서 많은 빨간색 오류를 일으킨 솔루션의 다른 프로젝트에 대한 종속성에 대한 경고 삼각형이있는 솔루션에 하나의 프로젝트가 있습니다. 그러나 빌드, 실행 및 디버그는 정상적으로 수행됩니다. 마침내 솔루션 트리에서 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭하여 프로젝트를 언로드 한 다음 프로젝트를 다시로드하면 모두 만족합니다. 감사합니다 Visual Studio, smh. VS 2019 16.7.1을 사용하고 있습니다.


0

머신 다시 시작

내 상황은 일부 프로세스가 캐시 플러시 후 특정 dll을 해제하지 않은 다음 해당 잠금 (?)으로 인해 dll을 획득하지 못한 것입니다.

내 컴퓨터를 다시 시작하고 donet restore문제를 해결하여 누락 된 패키지 오류없이 다시 빌드 할 수 있습니다.


-3

이 문제를 해결할 수있는 모든 NuGet 패키지를 업데이트하는 데 문제가없는 경우.

도구 메뉴-> NuGet 패키지 관리자 -> 솔루션 용 Nuget 패키지 관리 . 이 메뉴가 나타나면 업데이트 탭을 클릭하고 모두 업데이트 버튼을 클릭 합니다.


4
모든 패키지를 최신 버전으로 업데이트하지 않습니까? 이것은 하나 이상의 패키지의 특정 (최신이 아닌) 버전이 필요한 경우 바람직하지 않을 수 있습니다.
Gertsen

이미 최신 패키지를 사용하고 있다면 이것은 훌륭한 솔루션입니다. 내 문제를 즉시 해결했습니다.
n4rzul

1
이것이 항상 해결책은 아닙니다. 프로젝트 내에 업데이트해서는 안되는 패키지가있는 경우가 있습니다.
caras
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.