영어로 읽기

다음을 통해 공유


NuGet 2.0 릴리스 정보

NuGet 1.8 릴리스 정보 | NuGet 2.1 릴리스 정보

NuGet 2.0은 2012년 6월 19일에 릴리스되었습니다.

알려진 설치 문제

VS 2010 SP1을 실행하는 경우 이전 버전이 설치된 경우 NuGet을 업그레이드하려고 할 때 설치 오류가 발생할 수 있습니다.

해결 방법은 단순히 NuGet을 제거한 다음 VS 확장 갤러리에서 설치하는 것입니다. 자세한 내용은 VS https://support.microsoft.com/kb/2581019 핫픽스로 직접 이동하세요.

참고: Visual Studio에서 확장을 제거할 수 없는 경우(제거 단추가 비활성화됨) "실행 관리영구자"를 사용하여 Visual Studio를 다시 시작해야 할 수 있습니다.

패키지 복원 동의에 대한 이 게시물에 설명된 대로 NuGet 2.0은 이제 패키지 복원이 온라인 상태가 되고 패키지를 다운로드할 수 있도록 동의를 제공해야 합니다. 패키지 관리자 구성 대화 상자 또는 EnableNuGetPackageRestore 환경 변수를 통해 동의를 제공했는지 확인하세요.

대상 프레임워크별 종속성 그룹화

버전 2.0부터 패키지 종속성은 대상 프로젝트의 프레임워크 프로필에 따라 달라질 수 있습니다. 이 작업은 업데이트 .nuspec 된 스키마를 사용하여 수행됩니다. <dependencies> 이제 요소 집합 <group> 을 포함할 수 있습니다. 각 그룹에는 0개 이상의 <dependency> 요소와 특성이 targetFramework 포함됩니다. 대상 프레임워크가 대상 프로젝트 프레임워크 프로필과 호환되는 경우 그룹 내의 모든 종속성이 함께 설치됩니다. 예시:

<dependencies>
    <group>
        <dependency id="RouteMagic" version="1.1.0" />
    </group>

    <group targetFramework="net40">
        <dependency id="jQuery" />
        <dependency id="WebActivator" />
    </group>

    <group targetFramework="sl30">
    </group>
</dependencies>

그룹에는 종속성이 0수 있습니다. 위의 예제에서 패키지가 Silverlight 3.0 이상을 대상으로 하는 프로젝트에 설치되면 종속성이 설치되지 않습니다. 패키지가 .NET 4.0 이상을 대상으로 하는 프로젝트에 설치되면 jQuery 및 WebActivator라는 두 종속성이 설치됩니다. 패키지가 이러한 2개의 프레임워크 또는 다른 프레임워크의 초기 버전을 대상으로 하는 프로젝트에 설치되면 RouteMagic 1.1.0이 설치됩니다. 그룹 간에는 상속이 없습니다. 프로젝트의 대상 프레임워크가 targetFramework 그룹의 특성과 일치하는 경우 해당 그룹 내의 종속성만 설치됩니다.

패키지는 두 가지 형식 중 하나를 사용하여 패키지 종속성을 지정할 수 있습니다. 즉, 요소 또는 그룹의 플랫 목록의 <dependency> 이전 형식입니다. 형식을 <group> 사용하는 경우 패키지는 2.0 이전 버전의 NuGet에 설치할 수 없습니다.

두 형식을 혼합할 수 없습니다. 예를 들어 다음 코드 조각이 잘못 되었으며 NuGet에서 거부됩니다.

<dependencies>
    <dependency id="jQuery" />
    <dependency id="WebActivator" />

    <group>
        <dependency id="RouteMagic" version="1.1.0" />
    </group>
</dependencies>

대상 프레임워크별로 콘텐츠 파일 및 PowerShell 스크립트 그룹화

어셈블리 참조 외에도 콘텐츠 파일 및 PowerShell 스크립트를 대상 프레임워크별로 그룹화할 수도 있습니다. 대상 프레임워크를 지정하기 위해 폴더에 있는 lib 동일한 폴더 구조를 이제 폴더 및 tools 폴더에 동일한 방식으로 적용할 content 수 있습니다. 예시:

\content
    \net11
        \MyContent.txt
    \net20
        \MyContent20.txt
    \net40
    \sl40
        \MySilverlightContent.html

\tools
    \init.ps1
    \net40
        \install.ps1
        \uninstall.ps1
    \sl40
        \install.ps1
        \uninstall.ps1

참고: init.ps1 솔루션 수준에서 실행되며 개별 프로젝트에 종속되지 않으므로 폴더 바로 아래에 tools 배치해야 합니다. 프레임워크별 폴더 내에 배치되는 경우 무시됩니다.

또한 NuGet 2.0의 새로운 기능은 프레임워크 폴더가 비어 있을 수 있다는 것입니다. 이 경우 NuGet은 어셈블리 참조를 추가하거나 콘텐츠 파일을 추가하거나 특정 프레임워크 버전에 대한 PowerShell 스크립트를 실행하지 않습니다. 위의 예제에서 폴더 content\net40 는 비어 있습니다.

향상된 탭 완성 성능

NuGet 패키지 관리자 콘솔의 탭 완성 기능이 업데이트되어 성능이 크게 향상되었습니다. 탭 키를 누른 시간부터 제안 드롭다운이 나타날 때까지 지연 시간이 훨씬 줄어듭니다.

버그 수정

NuGet 2.0에는 패키지 복원 동의 및 성능에 중점을 둔 많은 버그 수정이 포함되어 있습니다. NuGet 2.0에서 수정된 작업 항목의 전체 목록은 다음을 [NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=NuGet%202.0&assignedTo=All&component=All&sortField=Votes&sortDirection=Descending&page=0)참조하세요.