Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Informacje o wersji narzędzia NuGet 1.4

Informacje o wersji | narzędzia NuGet 1.3 NuGet 1.5

NuGet 1.4 został wydany 17 czerwca 2011 r.

Funkcje

Ulepszenia pakietu Update-Package

NuGet 1.4 wprowadza wiele ulepszeń polecenia Update-Package, co ułatwia przechowywanie pakietów w tej samej wersji w wielu projektach w rozwiązaniu. Na przykład podczas uaktualniania pakietu do najnowszej wersji bardzo często zaleca się zaktualizowanie wszystkich projektów z zainstalowanym pakietem do tej samej weryfikacji.

Polecenie Update-Package ułatwia teraz:

Aktualizowanie wszystkich pakietów w jednym projekcie

Update-Package -Project MvcApplication1

Aktualizowanie pakietu we wszystkich projektach

Update-Package PackageId

Aktualizowanie wszystkich pakietów we wszystkich projektach

Update-Package

Przeprowadzanie "bezpiecznej" aktualizacji we wszystkich pakietach

Flaga -Safe ogranicza uaktualnienia tylko do wersji z tym samym składnikiem wersji głównej i pomocniczej. Jeśli na przykład jest zainstalowana wersja 1.0.0 pakietu, a wersje 1.0.1, 1.0.2 i 1.1 są dostępne w kanale informacyjnym, -Safe flaga aktualizuje pakiet do wersji 1.0.2. Uaktualnienie bez -Safe flagi spowoduje uaktualnienie pakietu do najnowszej wersji 1.1.

Update-Package -Safe

Zarządzanie pakietami na poziomie rozwiązania

Przed nuGet 1.4 instalowanie pakietu w wielu projektach było kłopotliwe przy użyciu okna dialogowego. Wymagane jest uruchomienie okna dialogowego raz na projekt.

NuGet 1.4 dodaje obsługę instalowania/odinstalowywania/aktualizowania pakietów w wielu projektach jednocześnie. Po prostu uruchom polecenie, klikając prawym przyciskiem myszy pozycję Rozwiązanie i wybierając opcję menu Zarządzaj pakietami NuGet.

Solution Level Manage NuGet Packages dialog

Zwróć uwagę, że na pasku tytułu okna dialogowego wyświetlana jest nazwa rozwiązania, a nie nazwa projektu. Operacje na pakietach udostępniają teraz listę pól wyboru z listą projektów, do których powinna zostać zastosowana operacja.

Manage NuGet Packages Project Selection

Aby uzyskać więcej informacji, zobacz temat Zarządzanie pakietami dla rozwiązania.

Ograniczanie uaktualnień do dozwolonych wersji

Domyślnie podczas uruchamiania Update-Package polecenia w pakiecie (lub aktualizowaniu pakietu przy użyciu okna dialogowego) zostanie on zaktualizowany do najnowszej wersji w kanale informacyjnym. Dzięki nowej obsłudze aktualizowania wszystkich pakietów mogą istnieć przypadki, w których chcesz zablokować pakiet do określonego zakresu wersji. Na przykład możesz wiedzieć z wyprzedzeniem, że aplikacja będzie działać tylko z wersją 2.* pakietu, ale nie w wersji 3.0 lub nowszej. Aby zapobiec przypadkowemu zaktualizowaniu pakietu do wersji 3, pakiet NuGet 1.4 dodaje obsługę ograniczania zakresu wersji, do których można uaktualnić pakiety, ręcznie edytując packages.config plik przy użyciu nowego allowedVersions atrybutu.

Na przykład w poniższym przykładzie pokazano, jak zablokować SomePackage pakiet w zakresie wersji 2.0 –3.0 (wyłączność). Atrybut allowedVersions akceptuje wartości przy użyciu formatu zakresu wersji.

<?xml version="1.0" encoding="utf-8"?>
<packages>
    <package id="SomePackage" version="2.1.0" allowedVersions="[2.0, 3.0)" />
</packages>

Należy pamiętać, że w wersji 1.4 blokowanie pakietu do określonego zakresu wersji musi być ręcznie edytowane. W programie NuGet 1.5 planujemy dodać obsługę umieszczania tego zakresu za pomocą Install-Package polecenia .

Wizualizator pakietów

Nowy wizualizator pakietów uruchomiony za pośrednictwem opcji menu Narzędzia ->Biblioteka Menedżer pakietów ->Package Visualizer umożliwia łatwe wizualizowanie wszystkich projektów i ich zależności pakietów w ramach rozwiązania.

Ważna uwaga: ta funkcja korzysta z obsługi DGML w programie Visual Studio. Tworzenie wizualizacji jest obsługiwane tylko w programie Visual Studio Ultimate. Wyświetlanie diagramu DGML jest obsługiwane tylko w programie Visual Studio Premium lub nowszym.

Package Visualizer

Automatyczne sprawdzanie aktualizacji okna dialogowego NuGet

Niektóre wersje narzędzia NuGet wprowadzają nowe funkcje wyrażone za pośrednictwem .nuspec pliku, które nie są zrozumiałe dla starszych wersji okna dialogowego NuGet. Jednym z przykładów jest wprowadzenie w programie NuGet 1.4 do określania zestawów struktury. W związku z tym ważne jest użycie najnowszej wersji pakietu NuGet, aby upewnić się, że możesz korzystać z pakietów korzystających z najnowszych funkcji. Aby zwiększyć widoczność aktualizacji pakietu NuGet, okno dialogowe NuGet zawiera logikę wyróżniania, gdy jest dostępna nowsza wersja.

Uwaga: sprawdzanie jest wykonywane tylko wtedy, gdy karta Online została wybrana w bieżącej sesji.

Manage NuGet Packages dialog with new version available

Aby wyłączyć automatyczne sprawdzanie dostępności aktualizacji, przejdź do okna dialogowego Ustawienia NuGet i usuń zaznaczenie pola wyboru Automatycznie sprawdź dostępność aktualizacji.

NuGet Settings

Ta funkcja została rzeczywiście dodana w programie NuGet 1.3, ale nie będzie widoczna, oczywiście do momentu udostępnienia aktualizacji do wersji 1.3, takiej jak NuGet 1.4.

Ulepszenia okna dialogowego Menedżer pakietów

  • Ulepszono nazwy menu: opcje menu umożliwiające uruchomienie okna dialogowego zostały zmienione w celu zapewnienia przejrzystości. Opcja menu to teraz Zarządzanie pakietami NuGet.
  • Okienko Szczegółów zawiera najnowszą datę aktualizacji: okno dialogowe NuGet wyświetla datę najnowszej aktualizacji w okienku szczegółów pakietu po wybraniu karty Online lub Aktualizacje.
  • Wyświetlona lista tagów: w oknie dialogowym Nuget są wyświetlane tagi.

Ulepszenia programu PowerShell

  • Podpisane skrypty programu PowerShell: Pakiet NuGet zawiera podpisane skrypty programu PowerShell umożliwiające użycie w bardziej restrykcyjnych środowiskach.
  • Obsługa monitowania: konsola Menedżer pakietów obsługuje teraz monity za pośrednictwem $host.ui.Prompt poleceń i $host.ui.PromptForChoice .
  • Nazwy źródłowych pakietów: podanie nazwy źródła pakietu jest obsługiwane podczas określania źródła pakietu przy użyciu flagi -Source .

ulepszenia wiersza polecenia nuget.exe

  • Polecenia niestandardowe Narzędzia NuGet: nuget.exe można rozszerzać za pomocą poleceń niestandardowych przy użyciu narzędzia MEF.
  • Prostszy przepływ pracy tworzenia pakietów symboli: flaga -Symbols może być stosowana do normalnej struktury folderów opartych na konwencji, tworząc pakiet symboli tylko przez dołączenie źródła i .pdb plików w folderze.
  • Określanie wielu źródeł: NuGet install polecenie obsługuje określanie wielu źródeł przy użyciu średników jako ogranicznika lub przez wielokrotne określanie -Source .
  • Obsługa uwierzytelniania serwera proxy: pakiet NuGet 1.4 dodaje obsługę monitowania o poświadczenia użytkownika podczas korzystania z narzędzia NuGet za serwerem proxy, który wymaga uwierzytelniania.
  • nuget.exe zmiana powodująca niezgodność aktualizacji: flaga jest teraz wymagana -Self , aby nuget.exe się zaktualizować. nuget.exe Update teraz znajduje się w ścieżce do packages.config pliku i podejmie próbę zaktualizowania pakietów. Należy pamiętać, że ta aktualizacja jest ograniczona, ponieważ nie będzie: ** Aktualizuj, dodaj, usuń zawartość w pliku projektu. ** Uruchom skrypty programu PowerShell w pakiecie.

Obsługa serwera NuGet na potrzeby wypychania pakietów przy użyciu nuget.exe

Pakiet NuGet zawiera prosty sposób hostowania uproszczonego internetowego repozytorium NuGet za pośrednictwem NuGet.Server pakietu NuGet. W przypadku programu NuGet 1.4 lekki serwer obsługuje wypychanie i usuwanie pakietów przy użyciu nuget.exe. Najnowsza wersja programu NuGet.Server dodaje nowy appSettingelement o nazwie apiKey. Gdy klucz zostanie pominięty lub pozostawiony pusty, wypychanie pakietów do kanału informacyjnego jest wyłączone. Ustawienie wartości apiKey na wartość (najlepiej silne hasło) umożliwia wypychanie pakietów przy użyciu nuget.exe.

<appSettings>
    <!-- Set the value here to allow people to push/delete packages from the server.
            NOTE: This is a shared key (password) for all users. -->
    <add key="apiKey" value="" />
</appSettings>

Obsługa programu Windows Telefon Tools Mango Edition

Pakiet NuGet jest teraz obsługiwany w wersji wersji kandydata systemu Windows Telefon Tools for Mango. Obecnie narzędzia Windows Telefon Tools nie obsługują menedżera rozszerzeń programu Visual Studio, dlatego w celu zainstalowania narzędzia NuGet for Windows Telefon Tools może być konieczne pobranie i uruchomienie programu VSIX ręcznie.

Aby odinstalować program NuGet for Windows Telefon Tools, uruchom następujące polecenie.

vsixinstaller.exe /uninstall:NuPackToolsVsix.Microsoft.67e54e40-0ae3-42c5-a949-fddf5739e7a5

Poprawki błędów

Program NuGet 1.4 miał w sumie 88 elementów roboczych stałych. 71 z nich zostało oznaczonych jako usterki.

Aby uzyskać pełną listę elementów roboczych stałych w programie NuGet 1.4, wyświetl element [NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=All&type=All&priority=All&release=NuGet%201.4&assignedTo=All&component=All&sortField=LastUpdatedDate&sortDirection=Descending&page=0).

Poprawki błędów, które warto zauważyć:

  • [Issue 603](http://nuget.codeplex.com/workitem/603): Zależności pakietów w różnych repozytoriach są rozpoznawane prawidłowo podczas określania określonego źródła pakietu.
  • [Issue 1036](http://nuget.codeplex.com/workitem/1036): Dodanie NuGet Pack SomeProject.csproj do zdarzenia po kompilacji nie powoduje już nieskończonej pętli.
  • [Issue 961](http://nuget.codeplex.com/workitem/961): -Source flaga obsługuje ścieżki względne.

Aktualizacja NuGet 1.4

Wkrótce po wydaniu pakietu NuGet 1.4 znaleźliśmy kilka problemów, które były ważne do rozwiązania. Określony numer wersji tej aktualizacji do wersji 1.4 to 1.4.20615.9020.

Poprawki błędów

  • [Issue 1220](http://nuget.codeplex.com/workitem/1220): Update-Package nie jest wykonywany install.ps1/uninstall.ps1 we wszystkich projektach, gdy istnieje więcej niż jeden projekt
  • [Issue 1156](http://nuget.codeplex.com/workitem/1156): Menedżer pakietów Consol zablokowane na W2K3/XP (gdy program PowerShell 2 nie jest zainstalowany)