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

방금 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)



답변

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


답변

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

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

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


답변

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

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>


답변

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

이는 일반적으로 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에서 발생할 수 있습니다.


답변

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

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

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

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

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


답변

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


답변

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

유용한 스크린 샷 :

여기에 이미지 설명 입력