다음을 통해 공유


NuGet 7.0 릴리스 정보

NuGet 배포 차량:

NuGet 버전 Visual Studio 버전에서 사용 가능 .NET SDK에서 사용 가능
7.0.0 Visual Studio 2026 버전 18.0.0 10.0.1001
7.0.1 Visual Studio 2026 버전 18.1.0

1 .NET 워크로드가 있는 Visual Studio 2026과 함께 설치됨

요약: 7.0.1의 새로운 기능

이번 릴리스에서 수정된 문제

이 릴리스의 커밋 목록

요약: 7.0.0의 새로운 기능

  • .NET 10을 대상으로 하는 프로젝트는 기본적으로 NuGetAuditMode=all #14161로 설정하여 전이적 패키지의 취약성에 대해 경고합니다.

  • .NET 10 #14345를 대상으로 하는 모든 프로젝트에 대해 패키지 정리를 사용할 수 있습니다.

  • .NET 10 SDK 이상에서 지원하는 MCP(NuGet 모델 컨텍스트 프로토콜) 서버를 만들었습니다. NuGet의 MCP는 Visual Studio 2026에 미리 설치되며 VS 17.14 및 VS Code에서 설치할 수 있습니다. 서버는 nuget.org NuGet.Mcp.Server 패키지로 게시됩니다.

  • 패키지가 필요 없는 레거시 PackageReference 프로젝트 패킹 활성화 - #14046

  • .NET 10에서 SHA-1 사용량 중단 - #13814

  • 세부 정보 창에 감사 원본의 취약성 데이터가 반영됩니다. - #14554

  • 패키지 관리자 UI에서 NuGet AuditSources 지원 - #13954

  • NuGet의 설정을 새 Visual Studio 옵션 창으로 마이그레이션

    • Visual Studio 옵션에서 "패키지 원본" 설정 마이그레이션 - #14233

    • Visual Studio 옵션에서 "패키지 원본 매핑" 설정 마이그레이션 - #14234

  • dotnet update package --vulnerable (감사 수정) - #13372

파괴적 변경

  • 복원하는 동안 패키지 ID 유효성 검사 추가 - #14407

  • Project.json 더 이상 7.0에서 지원되지 않습니다. Visual Studio 2026에서 project.json 프로젝트를 PackageReference로 자동으로 마이그레이션

  • 패키지 정리로 인해 패키지 잠금 파일에 일회성 차이가 발생합니다 (#14272).

  • 정리는 PrivateAssets=all 및 IncludeAssets=none을 적용하여 직접 참조를 민영화합니다. - #14196

  • NuGet.exe의 서명, mssign 명령에서 SHA-1 지문 사용에 오류를 제기 - #13962

  • 서비스 인덱스의 리소스에서 https가 아닌 원본을 사용하는 경우 오류 표시 - #13364

SDK 호환성이 손상되는 변경

  • Project.json 사용 중단

    • project.json 팩 제거 - #7931

    • project.json 지원 제거 - #7199

    • PackageSpec.Dependencies 제거 - #14446

    • 패키지 사양의 중복 API 정리 - #6231

  • 사용되지 않는 NuGet VS 확장성 API가 제거됨 - #14403

  • NuGet.Frameworks, NuGet.Protocol, NuGet.Commands 및 NuGet.PackageManagement에서 사용되지 않는 것으로 표시된 사용되지 않는 모든 API 제거 - #14395

  • NuGet.Common, NuGet.Configuration, NuGet.LibraryModel, NuGet.Packaging 및 NuGet.ProjectModel에서 사용되지 않는 API 제거 - #14393

  • 와 같은 Standalone사용되지 않는 복원 구현에 대한 코드를 차단하고 제거합니다. - #14184

  • 제거 DotnetToolReference 복원 - #14183

이번 릴리스에서 수정된 문제

NuGet SDK 수정

  • NuGet.Protocol에서 리플렉션 기반 역직렬화를 사용하지 않음 - #14470

  • JsonSerializerIsReflectionEnabledByDefault가 false로 설정된 앱에서 Nuget.Protocols 6.13.1로 업데이트할 때 JsonSerializerIsReflectionDisabled - #14111

.NET CLI (.NET 명령줄 인터페이스)

  • .NET Core 인증 플러그 인에 대해 CanShowDialog 사용 - #14010

  • "dotnet package update"는 잘못된 프로젝트 파일(csproj)을 수정합니다. - #14585

  • dotnet nuget verify 명령은 패키지 내용 해시를 출력해야 합니다 - #14384

  • dotnet 패키지 업데이트는 --verbosity - #14319를 지원해야 합니다.

  • dotnet 패키지 업데이트는 CPM 및 VersionOverride를 지원해야 합니다. - #14318

  • dotnet 패키지 업데이트는 여러 패키지를 지원해야 합니다. - #14308

  • dotnet 패키지 업데이트는 패키지 원본 매핑을 지원해야 합니다. - #14307

  • 특정 버전에 대한 dotnet 패키지 업데이트 - #14306

  • dotnet 패키지 업데이트 초기 버전 - #14305

  • [버그 Bash][불안정] "0으로 나누려고 했습니다."라는 오류가 발생했습니다. "dotnet list [ProjectPath] 패키지 --vulnerable" 명령을 실행할 때 발생합니다. - #14122

  • [기능]: dotnet list [project | solution] 패키지가 솔루션 필터에서 작동하지 않음 - #11789

Visual Studio의 패키지 관리자 UI

  • 검색 컨트롤을 Fluent UI로 변환 - #14469

  • Fluent TextBox for Project PM UI 설치 버전 사용 - #14466

  • [버그 Bash] PM UI의 버전 드롭다운 목록에 작은 차이가 있습니다. - #11990

  • [버그 Bash] PM UI의 드롭다운 목록에서 선택한 항목과 가리키기 항목 사이의 배경색을 구분하지 않습니다. - #10977

  • [버그 Bash] Tab 키를 사용하여 '버전' 드롭다운 상자에 포커스를 맞춘 후, 키보드의 페이지 다운 버튼을 누르면 상자가 비게 됩니다. - #13605

  • 데드 코드: ActionsAndVersions 보기 - #14464

Visual Studio 옵션

  • 레거시 Visual Studio 옵션 NuGet 설정 서비스 비활성화 - #14398

  • 옵션 대화 상자에서 http 원본을 추가할 때 사용자가 확인란을 클릭하여 추가되는 AllowInsecureConnections에 더 명시적으로 동의하도록 합니다. - #14377

  • AllowInsecureConnections가 없는 HTTP 원본에 대한 패키지 원본 설정에 필요한 오류 - #14367

  • Visual Studio 옵션에서 NuGet 설정의 유효성 검사 개선 - #14359

  • 입력하는 동안 NuGet 옵션 페이지에 유효성 검사 오류 표시 - #14358

  • [버그 Bash] [불안정] '패키지 원본 매핑' 대화 상자의 '패키지 원본 매핑' 목록에서 원본 매핑의 첫 번째 제거가 작동하지 않음 - #13520

  • [지역화] 'Options-NuGet 패키지 관리자->>패키지 원본 매핑' 페이지의 테이블 제목 '패키지 원본 매핑'이 지역화되지 않았습니다. - #14550

  • [버그 Bash] 오프라인 패키지 원본은 이전에 'Options-NuGet> 패키지 관리자->패키지 원본' 창의 '컴퓨터 수준 패키지 원본' 원본 목록에서 사용하지 않도록 설정한 후 사용할 수 없습니다. - #13434

  • [버그 Bash] "새 패키지 원본 매핑 추가" 대화 상자의 "원본" 열은 최소 너비가 설정되어 있지 않아 끌어서 보이지 않게 할 수 있습니다. - #13355

  • [버그 Bash] 옵션 대화 상자의 첫 번째 다시 열기는 모든 원본이 이전에 삭제된 경우 "패키지 원본" 목록에서 기본 패키지 원본 "Microsoft Visual Studio 오프라인 패키지"를 다시 가져와야 합니다. - #13278

  • [버그 Bash] 새로 추가된 패키지 원본 매핑은 "Option-NuGet 패키지 관리자->>패키지 원본 매핑" 창에서 대/소문자를 구분하지 않아야 합니다. - #13210

  • [버그 Bash] "Option-NuGet 패키지 관리자" 창의 다른 탭에서 "패키지 원본 매핑" 탭으로 다시 전환한 후 새로 추가된> 패키지 원본 매핑이 손실됩니다. - #13150

  • [버그 Bash] "패키지 원본 매핑" 목록에서 패키지 원본 매핑을 선택하지 않은 경우 "제거" 단추를 사용하지 않도록 설정해야 합니다. - #13115

  • [CSY] "옵션->NuGet 패키지 관리자->패키지 원본" 대화 상자에 중복된 바로 가기 키 표시 - #7822

  • VS NuGet PMUI - 컴퓨터 전체 패키지 원본 영역도 수직으로 크기를 조정할 수 있어야 합니다. - #7560

  • [버그 Bash] 원본 "Microsoft Visual Studio 오프라인 패키지" - #13057의 이름을 수정할 때 중복된 패키지 원본이 있습니다.

  • [버그 Bash] 중복된 원본이 있는 패키지 원본 중 하나에 대해 "사용" 확인란을 선택하거나 선택 취소한 후 "Options->NuGet 패키지 관리자->패키지 원본" 페이지가 비활성화됩니다. #14499

  • 패키지 원본 추가 대화 상자에서 미리 채워진 텍스트를 수동으로 선택해야 합니다. - #14450

  • 이름이 업데이트되면 VS에서 패키지 원본 특성을 삭제해서는 안 됩니다. - #14370

패키지 정리

  • PrunePackageReference에 대한 경고 롤아웃 - #14126

  • nuget.org 패키지 원본이 아닌 경우 "nuget install"에서 감사 경고 누락 - #14096

  • 명령줄을 통해 지정된 HTTP 원본으로 푸시할 수 없음 - #14047

  • 패키지 정리는 다중 대상을 포함하여 .NET 10을 대상으로 하는 모든 프로젝트에 대해 사용하도록 설정됩니다. - #14345

  • 가지치기가 활성화된 프레임워크를 NuGet.targets로 이동 - #14424

  • _RestorePackagePruningDefault RestorePackagePruningDefault로 변경 - #14511

Restore

  • dotnet restore/Visual Studio - .esproj + Nx project.json과의 충돌 - #13512

  • 잠긴 모드에서 가지치기 기능을 사용할 때 NU1004 개선 - #14075

  • 복원에서 생성된 MSBuild props 파일에 NuGetToolVersion을 쓰지 않는 것이 좋습니다. - #14355

  • SQL Server Management Studio 21이 설치된 경우 NuGet 복원 실패 - #14349

  • NUGET_EXPERIMENTAL_USE_NJ_FOR_FILE_PARSING 제거 - #14257

  • RestoreTargetGraph.Name은 restoreTargetGraph.TargetGraphName이 널리 사용되는 버전이므로 불필요하여 제거 - #14529

  • 사용되지 않는 기능으로 RestoreArgs.LockFileVersion 제거 - #14524

  • NUGET_BULK_RESTORE_COORDINATION 제거 및 대체 NUGET_SOLUTION_CACHE_INITIALIZATION - #14502

종속성 해결자

  • 새 종속성 확인자가 부동 시험판 버전을 제대로 처리하지 못함 - #13833

  • 잠금 파일을 사용하여 새 알고리즘 해결을 다시 활성화 - #13800

Other

  • 일머깅 팩 중지 - #13079

  • VSCode에서 GitHub Copilot에 NuGet.Client의 Build.ps1 더 친숙하게 만들기 - #14453

  • 반복되는 빌드에서 동일한 [Content_Types].xml 생성 - #14357

  • pack 레거시 csproj: VS 빌드 도구에 팩 대상 및 작업 포함 - #14520

  • 솔루션의 유일한 프로젝트가 project.json 프로젝트인 경우 VS가 충돌합니다. - #14553

  • 예외 처리 검토 - #14440

  • 중복 사전 조회를 방지하여 성능 향상 - #14432

  • LockFileLibrary를 변경할 필요가 없습니다. - #14385

이 릴리스의 커밋 목록

커뮤니티 기여

이 NuGet 릴리스를 멋지게 만드는 데 도움을 주신 모든 기여자에게 감사드립니다!

  • SimonCropp
    • 6720 중복 기본 생성자 제거
    • 6610 GetNupkgInfo의 메시지에 "최소 버전이 없습니다"를 추가합니다.
    • 6581 MarkTransitiveOrigin에서 중복 사전 조회 제거
    • PackageItemViewModelTests에서 6596의 null 허용을 활성화
    • 6634 IFrameworkTargetable 제거
    • 6616 PluginFindPackageByIdResource에서 중복 버전 구문 분석 방지
    • ReadmePreviewViewModelTests에서 6595로 null 허용
    • 6587 ProcessUnrankedEntries에서 중복 사전 조회 제거
    • EmbeddedResourcesCapabilityTests에서 6598 null 허용 기능 활성화
    • 6577 전용 속성 대신 필드 사용
    • 6622 GetPackagesToBeReinstalled에서 사용되지 않는 목록 제거
    • projectManagerService.GetMetadataAsync 반환 값에 대한 6589 중복 null 검사
    • 6605 VSRestoreSettingsUtilityTests에서 nullable 사용
    • 6575 CredentialServiceAdapter.GetCredentials에서 불필요한 사전 조회 제거
    • NuGetInstallCommandTest에서 6601 nullabe 사용
    • 6593 IProjectContextInfoExtensionsTests에서 nullable 사용
    • 6614 DependencyGraphFileRequestProvider에서 중복 목록 제거
    • 6625 PackageExtractor에서 사용되지 않는 변수 제거
    • 6609 UnresolvedMessages의 null 허용 여부 수정
    • 6608 사용되지 않는 contextForGather 제거
    • 6628 CredentialsItem에서 중복 열거 제거
    • 6617 MSBuildRestoreUtility에서 toolItems 목록 인스턴스 제거
    • 6599 Constructor_SetReportAbuseUrl_Initialize 매개 변수 null 허용 여부 수정...
    • 6604 LegacyPackageReferenceProjectTests에서 nullable 사용
    • 6631 DependencyGraphSpecRequestProvider.CollectReferences 삭제
    • 6635 EnvDteProjectExtensions.PathComparer 제거
    • 6623 ManifestSchemaUtility에서 중복 GetManifestResourceNames 제거
    • 6619 사용되지 않는 packageID 변수 제거
    • 6620 PackageManagerControl에서 사용되지 않는 변수 제거
    • 6640 중복 예외 처리 제거
    • 6637 PackageManagerControl.AddMigratorBar 제거
    • 6629 ResolverMetadataClient에서 사용되지 않는 HashSet 인스턴스 제거
    • 6602 MSBuildUtilityTest에서 nullable 사용
    • 6641 UpdateCommand.ExecuteCommandAsync에서 중복 null 조건 제거
    • 6683 GetTempFilePath에서 중복 문자열 할당 제거
    • 6626 SignedPackageArchiveIOUtility에서 사용되지 않는 변수 제거
    • 6574 CreatePackageSourceMappingDictionary에서 중복 사전 조회 제거
    • 6594 InfiniteScrollListTests에서 null 허용 설정
    • 6682 SafeReadAsync에서 비동기 지연 사용
    • 6600 NuGetUpdateCommandTests에서 nullable 사용
    • 6606에서 VSNominationUtilitiesTests의 nullable 옵션을 활성화하기
    • 6613 GetExternalProject에서 중복 형식 변수 제거
    • 6611 사용되지 않는 solutionService 인스턴스 제거
    • 6643 MsBuildUtility.GetMsBuildPathInPathVar 제거
    • 6632 PackageSpecFactory.GetTargetFrameworkStrings 제거
    • 6573 ProjectFactory.ProcessDependencies에서 일부 할당 방지
    • 6588 GetPreviewResultsAsync에서 사전 조회 제거
    • PackageModelCreationTestHelper의 6597 null 허용 여부 수정
    • 6612 NuGetPackageManager에서 사용되지 않는 목록 인스턴스 제거
    • 6591 PackageSourceValidatorTests에서 nullable 사용
    • 6603 IVsProjectBuildProperties의 null 가능성 수정
    • 6636 PackageReferenceProject에서 _project* 필드 제거
    • 6630 LocalV3FindPackageByIdResource에서 사용되지 않는 ID 인스턴스 제거
    • 6618 NuGetPackageManager에서 LoggerAdapter 인스턴스 제거
    • 6621 SolutionUpToDateChecker에서 사용되지 않는 projectsByUniqueName 제거
    • 6624 PackageBuilder에서 사용되지 않는 변수 제거
    • 6633 JsonPackageSpecReader의 DelimitedStringSeparators와 VersionSeparators 제거
    • 6642 CommandLineParser.AssignValue에서 as 대신 캐스트를 사용하고 null 검사를 사용합니다.
    • 6615 GetPluginAsync에서 중복 목록 제거
    • 6627 MisplacedAssemblyOutsideLibRule에서 사용되지 않는 GetDirectoryName 제거
    • 6578 PrunePackageTree.PruneDowngrades에서 불필요한 사전 조회 제거
    • 6576 RecommenderPackageFeed에서 사전의 중복 항목 조회 제거
  • baronfel
    • 6554 NuGet-SDK> 코드 흐름 수정
    • 6514 복원 중 생성된 NuGet props 파일의 속성을 고정하고 안정시킵니다.
  • omajid
    • 6500 Content_Types.xml 항목의 안정적인 순서 확인
    • 전체 서명을 사용할 수 없는 경우 Linux에서 6507 지원 빌드
  • AlexDelepine
    • 6793 VS에 대한 Ngen 우선 순위 업데이트
  • 히크포드 주
    • 6475 감사 소스를 일관되게 구성합니다.
  • nohwnd
    • 6735 유틸리티 powershell.exe 호출에서 프로필 로드 사용 안 함
  • mmitche
    • 6539 NuGet을 xliff-tasks로 이동
  • dkurepa
    • 6644 Version.Details.props 추가
  • bdukes
    • 6530 Visual Studio 대신 SSMS에서 MSBuild 찾기 복원 수정 nuget.exe
  • ToddGrun
    • 6519 성능 및 정신상의 이유로 LockFileLibrary를 변경할 수 없게 만들기