Udostępnij za pośrednictwem


Ikona programu Visual StudioInformacje o wersji 15.8 programu Visual Studio 2017


Społeczność deweloperów | Wymagania systemowe | Zgodność | Kod dystrybucyjny | Postanowienia licencyjne | Blogi | Znane problemy



Uwaga

To nie jest najnowsza wersja programu Visual Studio. Aby pobrać najnowszą wersję, odwiedź witrynę programu Visual Studio .


Ramy czasowe pomocy technicznej

Ta wersja nie jest już obsługiwana. Aby uzyskać więcej informacji na temat obsługi programu Visual Studio, zapoznaj się z zasadami pomocy technicznej dla programu Visual Studio 2017.

Zapoznaj się z najnowszą wersją informacji o wersji lub odwiedź witrynę programu Visual Studio , aby pobrać najnowszą obsługiwaną wersję programu Visual Studio 2017.

Visual Studio Blog

Blog dotyczący programu Visual Studio to oficjalne źródło informacji o produkcie pochodzących od zespołu inżynierów ds. programu Visual Studio. Szczegółowe informacje na temat wydań programu Visual Studio 2017 w wersji 15.8 można znaleźć w następujących wpisach:

Wydania wersji 15.8 programu Visual Studio 2017

Ważne

Powiadomienie o biuletynie zabezpieczeń programu Visual Studio 2017 w wersji 15.8

Podsumowanie istotnych nowych funkcji w wersji 15.8

Najważniejsze problemy rozwiązane w wersji 15.8

Są to problemy zgłaszane przez klientów rozwiązane w wersji 15.8:

Zobacz wszystkie problemy zgłaszane przez klientów, które zostały rozwiązane w programie Visual Studio 2017 w wersji 15.8.

Portal społeczności deweloperów


Szczegóły nowości w wersji 15.8

Ikona informacji o wersjiVisual Studio 2017 w wersji 15.8.0

wydana 14 sierpnia 2018 r.

Nowe funkcje w wersji 15.8

Instalowanie

Masz teraz możliwość pobierania wszystkich plików instalacyjnych przed rozpoczęciem instalacji.

  • Aby użyć tej nowej opcji, wybierz pozycję „Pobierz wszystko, a następnie zainstaluj” w Instalatorze (Rysunek 1). Zalecamy skorzystanie z tej opcji w przypadku posiadania wolniejszego połączenia internetowego.
  • Domyślną opcją pozostaje „Zainstaluj podczas pobierania”, w przypadku której pobieranie i instalowanie zachodzi równolegle.
Pobierz tion
(Rysunek 1) Opcja pobierania

Wydajność

Ta wersja zawiera następujące ulepszenia dotyczące wydajności:

  • Przełączanie między gałęziami w projektach C#, VB i C++ jest znacznie szybsze w przypadku dużych rozwiązań, ponieważ ponowne załadowanie rozwiązania nie jest już wymagane.
  • Skróciliśmy czas zwolnienia i ponownego załadowania niewielkiego zestawu projektów C# i VB w dużych rozwiązaniach z kilku minut do kilku sekund.
  • Dodaliśmy możliwość wyłączenia funkcji ponownego otwierania dokumentów, które były otwarte w poprzedniej sesji, ponieważ ponowne otwieranie niektórych typów plików lub projektantów może opóźnić ładowanie rozwiązania.
    • Tę opcję można przełączyć w obszarze Narzędzia > Opcje > Projekty > Rozwiązania > Ogólne.

Wydajność testu

Znacznie zwiększyliśmy wydajności podczas wykonywania kilku testów w dużym rozwiązaniu z użyciem wielu projektów testowych. W naszych laboratoriach w przypadku rozwiązania mającego ponad 10 000 testów MSTest pojedynczy test był wykonywany do 82% szybciej!

Poprawa wydajności języka Visual Basic

Konwersja typów innych niż liczby całkowite do liczb całkowitych za pomocą wzorca CInt(Fix(number)) w języku Visual Basic przebiega teraz ze znacznie większą wydajnością.

Profilowanie wydajności

Ta wersja zawiera następujące rozszerzenia dotyczące profilowania wydajności:

  • Dodaliśmy możliwość uruchomienia profilowania w stanie wstrzymania:

    • Narzędzie Użycie procesora CPU w profilerze wydajności (ALT-F2) można teraz uruchomić w stanie wstrzymania (Rysunek 2). Może to być przydatne podczas czekania na odpowiedni scenariusz do przebadania użycia procesora CPU. Jeśli kolekcja użycia procesora CPU jest wyłączona przy uruchomieniu, profiler wydajności nie będzie gromadził żadnych danych użycia procesora CPU z przykładowego stosu do czasu specjalnego włączenia profilera. Dzięki temu ilość danych wynikowych do zbierania i analizowania jest znacznie mniejsza, co przyczynia się do poprawy wydajności badania.

    • Aby rozpocząć sesję z wyłączoną przykładową kolekcją narzędzia Użycie procesora CPU, kliknij ikonę koła zębatego obok pozycji Użycie procesora CPU na stronie uruchamiania profilera wydajności. Na stronie właściwości narzędzia Użycie procesora CPU usuń zaznaczenie pola wyboru Włącz profilowanie procesora CPU (próbkowanie) i kliknij przycisk OK, aby zapisać ustawienia.

      Strona ustawień narzędzia użycie procesora CPU
      (Rysunek 2) Ustawienia narzędzia Użycie procesora CPU
    • Po uruchomieniu aplikacji docelowej (kliknij pozycję Uruchom na stronie uruchamiania profilera wydajności) zostanie wyświetlony wykres wykorzystania procesora CPU (Rysunek 3), który umożliwia sterowanie profilowaniem procesora CPU. Aby włączyć zbieranie danych użycia procesora CPU z przykładowego stosu, wybierz pozycję Włącz profilowanie procesora CPU w środku widoku lub kliknij pozycję Rejestruj profil procesora CPU znajdującą się tuż poniżej wykresu wykorzystania procesora CPU. Pozycję Rejestruj profil procesora CPU możesz klikać dowolną liczbę razy, aby włączać/wyłączać zbieranie przykładowych danych. Kolor wykresu wykorzystania procesora CPU zmienia się, aby wskazać, czy zbieranie przykładowych danych jest w danym momencie włączone, czy wyłączone.

      Widok monitorowania narzędzia użycie procesora CPU
      (Rysunek 3) Wykres wykorzystania procesora CPU
  • Dodaliśmy narzędzie Śledzenie przydzielania obiektów .NET:

    • Śledzenie przydzielania obiektów .NET to jeszcze jedno narzędzie dostępne z poziomu profilera wydajności. Wywołanie tego narzędzia w sesji profilera wydajności inicjuje zbieranie śladu stosu dla każdego przydziału obiektu .NET występującego w aplikacji docelowej. Te dane stosu są analizowane wraz z informacjami o typie i rozmiarze obiektu w celu wyodrębnienia szczegółów dotyczących aktywności pamięci aplikacji. Dzięki temu możesz szybko ustalić wzorce alokacji w kodzie oraz zidentyfikować anomalie. Ponadto w przypadku zdarzeń odzyskiwania pamięci (GC) można z łatwością ustalić, które obiekty zostały zebrane i zachowane oraz szybko określić typy obiektów, które najbardziej wykorzystują pamięć aplikacji.
    • Jest to szczególnie przydatne dla autorów interfejsu API, ponieważ umożliwia zminimalizowanie alokacji. Wiele aplikacji będzie przekraczać limity buforu określone dla zbierania danych diagnostycznych, ale niewielkie aplikacje testowe wykorzystujące kluczowe scenariusze interfejsu API będą mogły zostać całkiem dobrze przetestowane. Podczas wykonywania aplikacji testowej profiler wydajności wyświetla wykres liniowy aktywnych obiektów (licznik) oraz wykres słupkowy różnicy obiektu (zmiany w %).
    • Aby użyć narzędzia Śledzenie przydzielania obiektów .NET, wyświetl stronę uruchamiania profilera wydajności (Rysunek 4), wybierz element docelowy profilowania (domyślny element docelowy jest projektem startowym w rozwiązaniu), zaznacz narzędzie Śledzenie przydzielania obiektów .NET w obszarze Dostępne narzędzia i kliknij przycisk Uruchom.
    Strona uruchamiania profilera wydajności
    (Rysunek 4) Strona uruchamiania profilera wydajności

Profilowanie wydajności (użycie procesora CPU)

Ta wersja zawiera następujące ulepszenia narzędzia Użycie procesora CPU profilera wydajności (dostępnego po naciśnięciu klawiszy ALT-F2):

  • W widoku drzewa wywołań domyślnie wyświetlane jest teraz asynchroniczne wykonanie według stosu wywołań logicznych. To zachowanie można wyłączyć, usuwając zaznaczenie opcji Połącz kod asynchroniczny w menu rozwijanym Filtr w widoku głównym narzędzia Użycie procesora CPU.
  • Dodaliśmy widok modułów/funkcji, w którym są wyświetlane informacje o wydajności według modułu (dll) i według funkcji w module. Widok modułów/funkcji można wyświetlić za pomocą menu kontekstowego, które jest dostępne po wybraniu funkcji w widoku głównym narzędzia Użycie procesora CPU, lub za pomocą listy rozwijanej Widok w widoku drzewa wywołań lub elementu wywołującego/wywoływanego.
  • W widoku głównym narzędzia Użycie procesora CPU do wykresu użycia procesora CPU dodano opcję „oznaczenia wystąpienia”. Wystąpienia można wyświetlić podczas wykonywania funkcji (na przykład na stosie), klikając dwukrotnie funkcję wymienioną w dowolnym widoku narzędzia Użycie procesora CPU.

Produktywność

Ta wersja zawiera następujące ulepszenia dotyczące produktywności:

  • W przypadku tworzenia aplikacji w języku C# możesz wykonać dodatkowe oczyszczanie kodu za pomocą polecenia Formatuj dokument (Ctrl + K, D lub Ctrl + E, D). Oczyszczanie można skonfigurować, przechodząc do pozycji Narzędzia>Opcje>Edytor tekstów>C#>Styl kodu>Formatowanie>Ogólne.
  • Dodaliśmy więcej refaktoryzacji i szybkich akcji za pomocą kombinacji Ctrl + . lub Alt + Enter:
    • Funkcja Odwróć instrukcję If umożliwia odwrócenie logiki w instrukcjach if-else. Umieść kursor w słowie kluczowym if, aby wyzwolić tę refaktoryzację.
    • Funkcja Dodaj parametr z miejsca wywołania metody pozwala dodać parametr do metody przez dodanie argumentu do miejsca wywołania metody i wyzwolenie usługi Szybkie akcje i operacje refaktoryzacji.
    • Funkcja Usuń niepotrzebne nawiasy usuwa nawiasy wokół operatorów binarnych, które nie są istotne dla kompilacji. Tę regułę stylu można skonfigurować za pomocą opcji Narzędzia>Edytor>>tekstu C#>Styl>kodu Ogólne lub .editorconfig:
      • dotnet_style_parentheses_in_arithmetic_binary_operators
      • dotnet_style_parentheses_in_relational_binary_operators
      • dotnet_style_parentheses_in_other_binary_operators
      • dotnet_style_parentheses_in_other_operators
    • Użyjternary warunkowe w przypisań i instrukcji zwrotnych można również skonfigurować jako regułę stylu w Opcje> narzędzi>... lub za pomocą pliku editorconfig:
      • dotnet_style_prefer_conditional_expression_over_assignment
      • dotnet_style_prefer_conditional_expression_over_return
  • Dodaliśmy nowe polecenia i ulepszenia okna Przejdź do wszystkich :
    • Funkcja Przejdź do otaczającego bloku (Ctrl + Alt + Strzałka w górę) pozwala na szybkie przechodzenie do początku otaczającego bloku kodu.
    • Funkcja Przejdź do następnego/poprzedniego problemu (Alt + PgUp/PgDn) pozwala przejść do następnego/poprzedniego problemu (błędu, zygzaka, żarówki).
    • Funkcja Przejdź do elementu członkowskiego (Ctrl + T, M) ma teraz zakres domyślnie ograniczony do pliku. To zachowanie domyślne można przełączyć z powrotem na rozwiązanie, przełączając opcję Ustaw zakres na bieżący dokument (Ctrl + Alt + C).
  • Dzięki obsłudze wielu kursorów możesz teraz tworzyć punkty wstawiania i zaznaczenia w wielu dowolnych miejscach w pliku. Umożliwia to jednoczesne dodawanie, edytowanie i usuwanie tekstu w wielu miejscach.
    • Kursory można wstawiać za pomocą kombinacji Ctrl + Alt + kliknięcie lewym przyciskiem myszy.
    • Naciskając klawisze Shift + Alt + Ins, możesz dodawać zaznaczenie i kursor w następnej lokalizacji zgodnej z bieżącym zaznaczeniem.
    • Pełną listę akcji można wyświetlić, wybierając pozycję Edytuj > Wiele kursorów.
  • Dostęp do kontekstowego menu nawigacji można uzyskać, naciskając klawisze Alt + `.
  • Zachowaj zgodność swoich powiązań klawiszy z dwoma nowymi profilami klawiatury: Visual Studio Code i ReSharper (Visual Studio). Te schematy można znaleźć, przechodząc do obszaru Narzędzia > Opcje > Środowisko > Klawiatura i używając menu rozwijanego u góry ekranu.

Debugowanie

Ta wersja zawiera następujące ulepszenia dotyczące debugowania:

  • Jeśli zainstalowano więcej niż jedno wystąpienie programu Visual Studio 2017, można teraz wybrać wystąpienie do wdrożenia rozszerzenia podczas debugowania (Rysunek 5). W ten sposób można na przykład wdrażać w kanale wydania programu Visual Studio podczas debugowania w kanale w wersji zapoznawczej.

    Wybierz wystąpienie debugowania
    (Rysunek 5) Wybieranie wystąpienia do debugowania
  • Teraz można dołączyć narzędzie Snapshot Debugger bezpośrednio ze strony podsumowania publikowania (Rysunek 6).

    Dołączanie debugera migawek ze strony Podsumowanie publikowania
    (Rysunek 6) Dołączanie narzędzia Snapshot Debugger z poziomu podsumowania publikowania
  • Teraz obsługujemy wyświetlanie zadań zarządzanych za pośrednictwem okna Zadania podczas debugowania minizrzutów ze stertą.

Narzędzia dla deweloperów platforma uniwersalna systemu Windows

Wprowadziliśmy wiele ważnych ulepszeń projektanta XAML dla projektów przeznaczonych dla platformy uniwersalnej systemu Windows, gdzie docelową wersją platformy jest system Windows 10 Fall Creators Update (kompilacja 16299) lub nowszy. Te ulepszenia są następujące:

  • Kolekcje można teraz edytować w obszarze Inspektor właściwości.
  • Projektant umożliwia teraz edytowanie szablonów i stylów, w tym w sytuacji, w której definicje tych jednostek są definiowane w innych dokumentach.
  • Właściwości typu IconElement (np. ikona w elemencie AppBarButton) mają teraz edytora niestandardowego w Inspektorze właściwości, dzięki czemu można je łatwo ustawić.
  • Projektant, edytor oraz funkcja Edytuj i Kontynuuj powinny teraz prawidłowo współpracować z atrybutem x:DefaultBindMode.
  • Środowisko Visual State Manager w programie Blend obsługuje teraz wyzwalacz AdaptiveTrigger.

Narzędzia F# 4.5 i F# Tools for Visual Studio

W tej wersji wprowadziliśmy język F# w wersji 4.5. Odpowiada to również nowej rodzinie 4.5.x biblioteki FSharp.Core (podstawowej biblioteki języka F#). Specyfikacje dla każdego z tych zmian można odczytać w repozytorium RFC języka F#. Istnieje również wiele ulepszeń narzędzi języka F# dla programu Visual Studio w tej wersji.

F# 4.5

Oto niektóre najważniejsze informacje dotyczące języka F# w wersji 4.5:

Obsługa funkcji Span'T<>

Zaimplementowaliśmy Span<'T> i powiązane funkcje, aby efektywne użycie i produkcja interfejsów API przy użyciu konstrukcji , Memoryi ref-like były możliwe w Spanjęzyku F#. Funkcje to m.in.:

  • Nowy typ voidptr.
  • Nowe funkcje NativePtr.ofVoidPtr i NativePtr.toVoidPtr w bibliotece FSharp.Core.
  • Nowe typy inref<'T> i outref<'T>, które są odpowiednio typami byref tylko do odczytu i typami byref tylko do zapisu. Odpowiada to typom in ref i out ref w języku C#.
  • Możliwość tworzenia struktur ByRefLike (takich jak Span i ReadOnlySpan).
  • Możliwość tworzenia struktur IsReadOnly.
  • Niejawne wyłuskania funkcji byref- i inref-return z metod.
  • Możliwość tworzenia elementów członkowskich rozszerzeń w elemencie byref/inref/outref.

Ten zestaw funkcji naprawia usterkę w początkowym projekcie parametru byref-return w języku F# 4.1, gdzie funkcje, metody i właściwości zwracające byrefwartość nie były niejawnie wyłuszające wartość zwracaną. Wprowadzamy tę zmianę, aby funkcja działa zgodnie z zasadami obsługi funkcji ref-return w języku C#. Jeśli adnotacja typu wskazuje, że jest obecnie używane niejawne wyłuskanie funkcji ref-return, jest wyświetlany komunikat o błędzie.

Ponadto ten zestaw funkcji naprawia również usterkę w kompilatorze języka F#, w którym możliwe było zastąpienie struktury zła; tj. wywołanie metody w strukturę języka F# może zastąpić rzeczywistą strukturę, która została wywołana za pomocą innej. Parametr this w strukturze jest teraz traktowany jako element inref<MyStruct> z komunikatem o błędzie sugerującym dodanie pola modyfikowalnego w przypadku zmodyfikowania struktury.

Więcej informacji na temat konstrukcji typu span i ref można znaleźć w dokumencie RFC dotyczącym tego zestawu funkcji.

Zapałka! w wyrażeniach obliczeniowych

W języku F# 4.5 wprowadzono match!, nowe słowo kluczowe do użycia w wyrażeniach obliczeniowych, w całości opracowane przez Johna Wostenberga. Ten lukier składniowy jest odpowiednikiem elementu let! z następującym po nim elemencie match w wyniku. Więcej informacji można znaleźć w dokumencie RFC dotyczącym słowa kluczowego match!.

Eliminowanie potrzeby przypisania elementu nadrzędnego przy użyciu instrukcji yield w wyrażeniach sekwencji, listy i tablicy

Język F# 4.5 teraz zrelaksuje niektóre przypadki, w których emisja upcast podczas używania yield była wymagana do przekonwertowania podtypu na supertyp. To ograniczenie nie było już konieczne dla tych wyrażeń, ponieważ język F# 3.1 nie jest używanyyield, więc sprawia to, że elementy są bardziej spójne z istniejącym zachowaniem. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.

Dopuszczanie wcięcia w nawiasach na liście i w tablicy

Język F# 4.5 teraz zrelaksuje regułę wcięcia dla nawiasów list i tablic, które wymagały, aby były wcięcie jednego zakresu do przodu, gdy znajdują się one we własnym wierszu. To poprzednie wymaganie zawsze było dość mylące, zwłaszcza dla początkujących w języku F#. Ponadto nie jest wymagane w przypadku wyrażeń sekwencji języka F#. Obecnie powoduje ona, że stan wyrażeń tablicy i listy jest spójny, tak jak w przypadku wyrażeń sekwencji. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.

Przypadki wyliczenia emitowane jako publiczne

Język F# 4.5 emituje teraz przypadki wyliczenia jako publiczne we wszystkich okolicznościach, aby dopasować je do sposobu, w jaki język C# emituje przypadki wyliczenia. Ułatwia to również profilowanie narzędzi do analizowania dzienników z kodu języka F#, gdzie emitowana była wartość zamiast nazwy etykiety. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.

Ulepszenia kompilatora języka F#

Ulepszenia kompilatora języka F# oprócz wymienionych wcześniej funkcji językowych znajdują się w języku F# 4.5. Są to:

  • Poprawiliśmy wydajność kompilatora, usuwając do 2,2% wszystkich alokacji w kompilatorze języka F# (w różnych scenariuszach).
  • Naprawiliśmy usterkę powodującą wyjątek AccessViolatioNException w przypadku używania elementu yield! z elementami wyliczalnymi opartymi na strukturze.
  • Obecnie istnieje ponownie możliwość dziedziczenia z funkcji FSharpFunc.
  • Wywołania tail są domyślnie wyłączone dla kompilacji debugowania języka F# dla platformy .NET Core. Są one włączone do wydania, dlatego pasują do kompilatora języka F# dla komputerów stacjonarnych.
  • Naprawiono normalizację odwołań języka F#, aby umożliwić kontrolowanie odwołań zestawów przechodnich zapisanych w pliku wyjściowym. Dzięki temu można przeprowadzić odpowiednik przekierowania zestawów na platformie .NET Core.
  • Naprawiliśmy usterkę polegającą na tym, że komunikat o błędzie wyświetlany podczas próby używania wywołania dynamicznego w funkcjach śródwierszowych był ignorowany. Obecnie następuje wypełnienie komunikatu o błędzie.
  • Język F# uwzględnia teraz flagę WarningsNotAsErrors , którą można ustawić w plikach projektu.
  • Gdy gałęzie wzorca nie zwracają tego samego typu, komunikat o błędzie został zaktualizowany do bardziej przyjaznej postaci (autor: Isaac Abraham).
  • Naprawiono usterkę polegającą na tym, że podczas kompilowania implementacji interfejsu bez implementacji metody przeciążonej występował błąd wewnętrzny (autor: Steffen Forkmann).
  • Usunięto niektóre niepotrzebne operacje kopiowania tablicy w fazie analizy leksykalnej kompilatora (autor: Gauthier Segay).
  • Niekompletne dopasowania wzorca w wyliczeniach języka F# generują teraz szczegółowe ostrzeżenie, które daje przykład nieuwzroczonego przypadku( współautor John Wostenberg).
  • Opcja #nowarn „2003” jest obecnie uwzględniana (autor: Matthias Diitrich).
  • Usunięto usterkę polegającą na tym, że korzystanie z metod rozszerzeń języka C# mogło zakończyć się niepowodzeniem w rozwiązywaniu przeciążeń języka F# przez Steffena Forkmanna.
  • Naprawiono wewnętrzny błąd struktury danych QueueList (autor: Steffen Forkmann).
  • Wprowadzono różne mniejsze optymalizacje i operacje czyszczenia kodu (autorzy: Steffen Forkmann, Eugene Auduchinok i ncave).

Podstawowa biblioteka języka F# 4.5.x

Dostępne są teraz następujące dodatki do biblioteki podstawowej języka F#:

  • Wykonano wiele pracy w celu ulepszenia śladów stosu dla wyrażeń obliczeń async { }. W śladach stosu powinien być teraz widoczny kod użytkownika i numery wierszy użytkownika. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.
  • Interfejsy API FuncConvert.FromFunc i FuncConvert.FromAction z przeciążeniami typu System.Func i System.Action, które ułatwiają współdziałanie z językiem C#. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.
  • ValueOption to nowy dostępny typ — pierwszy w zestawie przyszłych funkcji, który ma na celu zwiększenie wydajności aktywnych wzorców. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.
  • TryGetValue jest teraz nowym elementem członkowskim w typie mapy języka F#. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.
  • Naprawiliśmy wysokie użycie procesora przy pierwszym wywołaniu elementu MailboxProcessor.TryReceive.
  • Porównanie dla elementubool teraz używa szybkiego porównania rodzajowego (autor: Vasily Kirichenko).
  • Tekst podsumowania elementu Array.allPairs został zaktualizowany i jest teraz poprawny (autor: Patrick McDonald).

Ulepszenia narzędzi języka F#

W tej wersji uwzględniono znaczące ulepszenia narzędzi języka F#, takie jak ulepszenia wydajności i niektóre nowe funkcje edytora. Tak jak zawsze, z dużą liczbą wkładów ze społeczności open source języka F#. Poniżej przedstawiono najważniejsze nowości:

  • Poprawiliśmy wydajność funkcji IntelliSense dla projektów wszystkich formularzy w stylu zestawu SDK platformy .NET, w tym tych, które korzystają z wielowersyjności kodu.
  • Wspólna praca społeczności mająca na celu przeanalizowanie i ulepszenie wydajności funkcji IntelliSense dla bardzo dużych plików (autorzy: Vasily Kirichenko, Steffen Forkmann i Gauthier Segay). Funkcja IntelliSense w bardzo dużych plikach (z ponad 10 000 wierszami kodu) działa teraz około dwa razy szybciej.
  • Ostrzeżenie dotyczące nieaktualnej biblioteki FSharp.Core (bez względu na instalowanie pakietu) nie jest już obecne w projektach w stylu zestawu SDK platformy .NET.
  • Limit czasu etykietki narzędzia opisu, która wyświetla dokumentację XML dla elementu członkowskiego po . w funkcji IntelliSense, nie upływa już po 10 sekundach.
  • Naprawiono usterkę polegającą na tym, że nie można było ustawić punktów przerwania w argumentach konstruktora obiektu.
  • Naprawiono usterkę polegającą na tym, że symbol o zmienionej nazwie był duplikowany w przypadku parametru ogólnego.
  • Szablony dla platformy .NET Framework (klasyczne szablony języka F#) używają teraz biblioteki FSharp.Core z pakietu NuGet, aby dostosować je do szablonów języka F# zestawu .NET SDK.
  • Automatyczne, transakcyjne uzupełnianie nawiasów jest teraz dostępne dla par nawiasów (), [], {}, [||] i [<>]. Wykonaliśmy tę pracę we współpracy z użytkownikiem Gibran Rosa.
  • Teraz możesz przejść do definicji za pomocą Ctrl + Kliknięcie symbolu języka F#. Ustawienia dla tego gestu obowiązują również w oknie Narzędzia > Opcje.
  • Zmodyfikowano interfejs użytkownika wydajności funkcji IntelliSense, aby umożliwić konfigurację nieaktualnych informacji typecheck dotyczących różnych funkcji środowiska IDE. Objaśnienia dla poszczególnych opcji znajdują się teraz w etykietkach narzędzi ustawień.
  • Wyróżnianie odpowiednich nawiasów klamrowych działa teraz poprawnie. Dokonano tego we współpracy z użytkownikiem Vasily Kirichenko.
  • Funkcja przejścia do definicji działa teraz prawidłowo, kiedy typ jest zdefiniowany rekursywnie (dzięki współpracy z użytkownikiem Vasily Kirichenko).
  • Vasily Kirichenko naprawił usterkę polegającą na tym, że automatycznie zaimportowana przestrzeń nazw nie była otwierana, jeśli początek pliku był pusty.
  • Vasily Kirichenko naprawił usterkę polegającą na tym, że specyfikatory printf zawierające kropki były wyświetlane w nieprawidłowych kolorach.
  • Vasily Kirichenko naprawił usterkę polegającą na tym, że wszystkie otwarte obiekty były uznawane za nieużywane w rekursywnym module.
  • Vasily Kirichenko znacznie zwiększył wydajność analizatora nieużywanych otwartych obiektów.
  • Funkcja automatycznego uzupełniania atrybutów teraz sugeruje tylko te opcje, które są rzeczywiście atrybutami (dzięki współpracy z użytkownikiem Vasily Kirichenko).
  • Etykietki narzędzi z pomocą dotyczącą podpisu są teraz generowane dla parametrów statycznych dostawcy typów w miejscu wywołania konstruktora (dzięki współpracy z użytkownikiem Vasily Kirichenko).
  • Vasily Kirichenko naprawił usterkę polegającą na tym, że typy wartości używane jako jednostki miar były kolorowane jako typy odwołań.
  • Vasily Kirichenko naprawił usterkę polegającą na tym, że kolorowanie składni mogło znikać podczas przewijania niektórych plików.
  • Eksperymentalnie zaimplementowano teraz obsługę funkcji CodeLens (dzięki współpracy z użytkownikiem Victor Peter Rouven Müller). Można ją włączyć w edytorze > tekstów Opcje > F# > Code Lens.
  • Usunięto usterkę polegającą na tym, że usługa kompilatora języka F# niepoprawnie wychwyciła nazwy modułów w dokumentacji XML, została usunięta przez Sebastiana Urbana.
  • Eugene Auduchinok zmienił zachowanie kodu, który używał wywołań elementu Dictionary z ContainsKey, a następnie Item, aby używał elementu TryGetValue.
  • Jakob Majoka również miał swój wkład w procesie używania innego interfejsu API dla etykietki narzędzi.

Ulepszenia dotyczące infrastruktury, tworzenia pakietów i kodu typu open source

Wprowadziliśmy następujące ulepszenia dotyczące infrastruktury, tworzenia pakietów i udziału w naszym środowisku typu open source:

  • Kompilator języka F# dystrybuowany za pomocą programu Visual Studio nie jest już instalowany jako pojedynczy element w lokalizacji zestawu SDK kompilatora języka F#. Jest ona teraz w pełni równoległa z programem Visual Studio, co oznacza, że instalacje równoległe programu Visual Studio będą mieć naprawdę równoległe środowiska narzędzi i języka F#.
  • Pakiet NuGet FSharp.Core jest teraz podpisany.
  • Rejestrowanie ETW zostało dodane do narzędzi i kompilatora języka F#.
  • Bardzo duże pliki control.fs/control.fsi z biblioteki FSharp.Core zostały podzielone na pliki async.fs/async.fsi, event.fs/event.fsi, eventmodule.fs/eventmodule.fsi, mailbox.fs/mailbox.fsi i observable.fs/observable.fsi.
  • Dodaliśmy wersje wzorowane na stylu zestawu SDK .NET dla artefaktów testów przeciążeniowych wydajności naszych projektów.
  • Usunęliśmy z naszej bazy kodu pakiet Newtonsoft.json, więc jest teraz o jeden pakiet mniej do pobrania dla współautorów OSS.
  • Używamy teraz najnowszych wersji pakietów System.Collections.Immutable i System.Reflection.Metadata.

Ulepszenia dotyczące zgodności i zestawu narzędzi języka C++

Ta wersja zawiera następujące ulepszenia dotyczące zgodności i zestawu narzędzi języka C++:

  • Wprowadzono nowy, eksperymentalny, oparty na tokenie preprocesor, który jest zgodny ze standardami C++11 (w tym z funkcjami preprocesora C99). Można go włączać za pomocą przełącznika /experimental:preprocessor. Sterowanie tą funkcją odbywa się za pomocą makra _MSVC_TRADITIONAL, które ustawia wartość 1, jeśli ma być używany tradycyjny preprocesor, i wartość 0, jeśli ma być używany nowy eksperymentalny preprocesor zgodny ze standardami.
  • Wiersz polecenia dla deweloperów programu Visual Studio obsługuje włączanie środowisk uruchomieniowych języka Visual C++ z lukami w zabezpieczeniach Spectre wariant 1 (-vcvars_spectre_libs = spectre). Więcej informacji na temat ograniczania ryzyka w związku z luką w zabezpieczeniach Spectre można znaleźć na blogu zespołu języka Visual C++.
  • Dodano dwa nowe dodatki do optymalizatora architektury SSA obsługujące generowanie nowoczesnego kodu C++: eliminację nadmiarowego magazynu i składanie nadmiarowych gałęzi.
  • Zoptymalizowano wydajność operacji We/Wy mapowania pamięci w konsolidatorze, aby zmniejszyć czasy konsolidowania.

Tworzenie aplikacji międzyplatformowych w języku C++

W tej wersji dodaliśmy i ulepszyliśmy następujące funkcje tworzenia aplikacji międzyplatformowych w języku C++:

  • Dodano szablon Dodaj>Nowy element na potrzeby generowania pliku w formacie clang z obsługą konwencji kodowania określonej dla formatu Clang w oknie Narzędzia>Opcje. Jeśli wybrano konwencję programu Visual Studio, wygenerowany plik będzie dopasowany do bieżącej konfiguracji formatowania użytkownika programu Visual Studio określonej w oknie Narzędzia > Opcje.
  • Zaktualizowano dostarczany plik clang-format.exe do wersji 6.0.0.
  • Dodano szablony ułatwiające dodawanie konfiguracji do pliku CppProperties.json.
  • Dodano szablony ułatwiające dodawanie konfiguracji do pliku CMakeSettings.json (Rysunek 7).
Szablony konfiguracji dla narzędzia CMake
(Rysunek 7) Szablony konfiguracji dla narzędzia CMake

Produktywność w języku C++

Wprowadziliśmy następujące rozszerzenia i ulepszenia dotyczące produktywności języka C++:

  • Etykietki Szybka podpowiedź do makr w języku C++ pokazują teraz, co rozszerzają, a nie tylko samą definicję. Są one szczególnie przydatne w przypadku złożonych makr, które odwołują się do innych makr, ponieważ wyjaśniają, czym jest zastępowany identyfikator makra w preprocesorze.
  • Dodano nową ikonę żarówki szybkiej poprawki umożliwiającą przekonwertowanie podstawowych makr na element constexpr jako nowe narzędzia do modernizacji kodu.
  • Funkcja IntelliSense dla szablonów udostępnia więcej szczegółów na temat argumentów szablonu, aby móc w pełni korzystać z funkcji IntelliSense w treści szablonu (Rysunek 8).
Funkcja IntelliSense szablonu
(Rysunek 8) Funkcja IntelliSense dla szablonów
  • Pracujemy nad odświeżeniem naszego środowiska analizy kodu. Już teraz możesz włączyć nowe, ciągle opracowywane funkcje w oknie Narzędzia>Opcje>Edytor tekstów>C++>Eksperymentalne>Analiza kodu. Analiza kodu może działać w tle, gdy pliki są otwierane lub zapisywane, a wyniki są wyświetlane na liście błędów i jako zielone podkreślenia w edytorze (Rysunek 9).
Analiza kodu w edytorze
(Rysunek 9) Analiza kodu w edytorze

Ulepszenia debugowania języka C++

Wprowadziliśmy następujące ulepszenia debugowania:

  • Funkcja Tylko mój kod pozwala teraz na pominięcie kodu z bibliotek systemowych lub bibliotek C++ innych firm oprócz zwijania takich wywołań w oknie stosu wywołań. To zachowanie można kontrolować w dowolnych bibliotekach języka C++, jeśli kod zostanie skompilowany za użyciem przełącznika /JMC, a w pliku natjmc zostaną określone ścieżki do bibliotek innych niż biblioteki użytkownika. Jeśli biblioteka systemowa wywoła kod użytkownika podczas wkroczenia do kodu, debuger pominie cały kod systemowy i zatrzyma się w pierwszym wierszu wywołania zwrotnego do kodu użytkownika (Rysunek 10).
Tylko mój kod
(Rysunek 10) Funkcja Tylko mój kod
  • Punkty przerwania danych można teraz ustawiać w oknach wyrażeń kontrolnych, szybkich wyrażeń kontrolnych, zmiennych automatycznych i zmiennych lokalnych, dzięki czemu za pomocą kilku kliknięć można przerwać program, gdy wartość przechowywana w pamięci ulegnie zmianie.
  • Link źródłowy umożliwia osadzanie informacji o oryginalnym kodzie źródłowym pliku wykonywalnego lub biblioteki w pliku PDB podczas kompilacji.
  • Podczas debugowania domyślnie okno konsoli pozostaje teraz otwarte, gdy program kończy wykonywanie (podobnie jak w przypadku uruchamiania programu bez debugera). Jeśli chcesz, aby konsola, tak jak wcześniej, była automatycznie zamykana, możesz zmienić to zachowanie w oknie Narzędzia > Opcje > Debugowanie > Ogólne.

Ulepszenia języka JavaScript i języka TypeScript

TypeScript 3.0

Program Visual Studio 2017 w wersji 15.8 domyślnie zawiera teraz kod TypeScript 3.0. Aby uzyskać szczegółowe informacje na temat tej wersji, zobacz Ogłoszenie wydania TypeScript 3.0.

Ulepszona obsługa platformy Vue.js

Ulepszono obsługę biblioteki platformy Vue.js, a w szczególności obsługę plików vue, znanych także jako „składniki jednoplikowe”. Usprawnia to edytowanie bloków skryptu wewnątrz plików vue. Te usprawnienia obejmują obsługę bloków skryptów utworzonych w języku TypeScript za pośrednictwem atrybutu lang="ts" na elemencie skryptu. (Uwaga: Proces kompilacji przy użyciu pakietu WebPack lub podobnego musi służyć do konwertowania plików vue na pliki HTML i JS potrzebne w czasie wykonywania. Aby uzyskać więcej informacji, zobacz stronę Składniki pojedynczego pliku.

Jeśli zostanie zainstalowane obciążenie Node.js, w oknie dialogowym Nowy projekt w ścieżce „JavaScript / Node.js” lub „TypeScript / Node.js” będą teraz dostępne szablony podstawowej aplikacji internetowej Vue.js. Poniżej przedstawiono przykład edytowania kodu TypeScript wewnątrz bloku skryptu w pliku vue (Rysunek 11).

Edytowanie pliku vue
(Rysunek 11) Edytowanie plików vue

Ulepszenia programu ESLint

W tej wersji ponownie zaimplementowaliśmy obsługę programu ESLint. Program ESLint zawiera następujące ulepszenia i udoskonalenia:

  • Oprócz zaznaczania błędów tylko w zapisanych plikach, program Visual Studio będzie teraz zaznaczał błędy także w plikach JavaScript podczas edycji.
  • Wyniki można raportować dla wszystkich plików JS w projekcie, a nie tylko dla otwartych. Jeśli nie chcesz zaznaczać błędów w niektórych częściach projektu, możesz użyć pliku eslintignore, aby określić katalogi i pliki, które mają zostać zignorowane.
  • Program ESLint został zaktualizowany, aby domyślnie używać wersji ESLint 4, jeśli jednak projekt ma lokalną instalację programu ESLint, zostanie użyta ta wersja.

W programie Visual Studio można globalnie wyłączyć program ESLint, usuwając zaznaczenie ustawienia Włącz program ESLint w obszarze **Narzędzia > Opcje > Edytor tekstów > Javascript/Typescript > Zaznaczanie błędów ** (Rysunek 12).

Opcje ESLint
(Rysunek 12) Opcje programu ESLint

Ulepszenia otwierania folderu dla środowiska Node.js

Wprowadziliśmy liczne ulepszenia pracy z językami JavaScript i TypeScript w scenariuszu otwierania folderu po zainstalowaniu „obciążenia Node.js”. Dotyczą one na przykład zarządzania pakietami NPM, kompilowania języka TypeScript, uruchamiania i debugowania za pomocą programu Node.exe, wykonywania skryptów NPM i uruchamiania testów jednostkowych.

Aby uzyskać więcej informacji, zobacz Tworzenie kodu JavaScript i TypeScript w programie Visual Studio bez rozwiązań ani projektów.

Ulepszenia wydajności edytora

W poprzednich wersjach wszystkie operacje usługi języków JavaScript i TypeScript były obsługiwane przez jeden proces platformy Node.js. Mogło to powodować opóźnienia edytora, jeśli polecenia mające wpływ na wpisywanie przez użytkowników (np. automatyczne formatowanie w nowym wierszu) były wysyłane w czasie, gdy trwała już potencjalnie długa operacja (np. analizowanie kodu w poszukiwaniu błędów). Aby temu zaradzić, na potrzeby operacji, które mają największy wpływ na edytowanie, jest teraz używany oddzielny proces. Ten proces zdecydowanie mniej obciąża zasoby systemu, niż istniejący proces usługi językowej. Jeśli jednak chcesz wyłączyć nowy proces, zaznacz pole Wyłącz przetwarzanie składni dedykowanej w obszarze Narzędzia > Opcje > Edytor tekstów > JavaScript/TypeScript >Usługa językowa.

Narzędzia Visual Studio Web Tools

Menedżer biblioteki to nowa funkcja zawarta w programie Visual Studio 2017. Ułatwia ona zarządzanie bibliotekami po stronie klienta w projektach internetowych.

Narzędzia kontenerów

Dodaliśmy nowe środowisko kontenera platformy Docker pojedynczego projektu dla projektów internetowych platformy ASP.NET Core. Uzupełnia ono istniejące narzędzia kontenerów bazujące na platformie Docker Compose i ułatwia tworzenie, debugowanie i kompilowanie kontenerów platformy Docker bezpośrednio w programie Visual Studio.

Obsługę platformy Docker można dodać podczas tworzenia projektu (Rysunek 13):

Włącz obsługę platformy Docker
(Rysunek 13) Włączanie obsługi platformy Docker

Obsługę platformy Docker można też włączyć w istniejącym projekcie za pomocą menu kontekstowego projektu w Eksploratorze rozwiązań (Rysunek 14). Gdy to zrobisz, program Visual Studio utworzy pojedynczy plik Dockerfile w projekcie. Masz możliwość wyboru systemu: Windows lub Linux.

Dodaj obsługę platformy Docker
(Rysunek 14) Dodawanie obsługi platformy Docker

Program Visual Studio dodaje również profil uruchamiania debugera (Rysunek 15) dla platformy Docker, dzięki czemu projekt może być debugowany podczas działania w kontenerze.

Profil uruchamiania platformy Docker
(Rysunek 15) Profil uruchamiania platformy Docker

Jeśli masz rozwiązanie z wieloma projektami platformy Docker, to gdy je uruchomisz, domyślnie będzie działał tylko jeden kontener. Jeśli chcesz, aby jednocześnie działało wiele kontenerów, możesz kliknąć rozwiązanie w Eksploratorze rozwiązań prawym przyciskiem myszy i wybrać pozycję Ustaw projekty startowe, a następnie pozycję Wiele projektów startowych i z menu rozwijanego Akcja wybrać polecenie Uruchom lub Uruchom bez debugowania dla wszystkich projektów, które chcesz uruchomić.

Jeśli Twój konteneryzowany projekt będzie działał zgodnie z oczekiwaniami, możesz kliknąć go prawym przyciskiem myszy i wybrać polecenie Utwórz obraz platformy Docker, aby skompilować obraz lokalnie i gdy wszystko będzie gotowe, wypchnąć do usługi Azure Container Registry lub witryny DockerHub.

Możesz również dodać istniejące funkcje bazujące na narzędziu Docker Compose do projektu internetowego platformy ASP.NET Core za pomocą nowej opcji obsługi orkiestratora kontenerów(Rysunek 16). Kliknij prawym przyciskiem myszy projekt internetowy platformy ASP.NET Core w Eksploratorze rozwiązań, wybierz pozycję Dodaj > Obsługa orkiestratora kontenerów, a następnie z menu rozwijanego wybierz pozycję Docker Compose.

Dodawanie obsługi orkiestratora kontenerów
(Rysunek 16) Dodawanie obsługi orkiestracji

Ulepszenia publikowania

Ta wersja zawiera następujące ulepszenia dotyczące publikowania:

  • Podczas publikowania kontenera platformy Docker w rejestrze kontenerów możesz teraz dostosować tag obrazu. Możesz ręcznie dodać tag (jego wartość domyślna to „najnowszy”) lub użyć tagu wygenerowanego automatycznie, aby mieć pewność, że każdy tag jest unikatowy.
  • Podczas tworzenia nowej usługi Azure App Service możesz również skonfigurować automatyczne zbieranie danych telemetrycznych w usłudze Application Insights. Jeśli wybierzesz region, który ma także usługę Application Insights, będzie ona włączona domyślnie. Jeśli wybierzesz region, który nie ma jeszcze usługi Application Insights, możesz ręcznie określić inny region dla zasobu usługi Application Insights, korzystając z listy rozwijanej.
  • Podczas publikowania projektów usługi Azure Functions możesz wybrać publikowanie za pomocą nowej funkcji Uruchom z archiwum ZIP.

Visual Studio Tools dla programu Xamarin

Ta wersja zawiera następujące aktualizacje dla programu Xamarin:

  • Dodaliśmy obsługę środowiska Xcode 9.4.
  • Podczas tworzenia nowego projektu platformy Xamarin.Forms opcją udostępniania kodu domyślnego jest teraz .NET Standard. Opcja projektu udostępnionego jest nadal dostępna.
  • Dodaliśmy ulepszenia kompilacji przyrostowej systemu Android. Platforma Xamarin.Android używa plików wygenerowanych w pośrednim katalogu danych wyjściowym w celu osiągnięcia kompilacji przyrostowych, które są szybsze niż kompilacje pełne. Wcześniej zmiana platformy docelowej projektu powodowała unieważnienie plików oraz wykonanie pełnej kompilacji przy następnym uruchomieniu. W tej wersji przechowujemy pliki w folderach poszczególnych platform, dlatego można przełączać się między różnymi platformami docelowymi i korzystać z zalet kompilacji przyrostowych. Czyszczenie projektu umożliwia odzyskanie miejsca na dysku używanego przez zachowane pliki.
  • Dodaliśmy minimalną obsługę rozszerzenia projektów powiązania Xamarin.Mac w programie Visual Studio 2017. Dzięki temu program Visual Studio może ładować i rozpoznawać projekty powiązania Xamarin.Mac jako obsługiwane. Można też kompilować projekty powiązania Xamarin.Mac. Proces kompilacji odbywa się jednak lokalnie bez użycia natywnego łańcucha narzędzi Mac, dlatego generowanych zestawów IL nie można używać na potrzeby uruchamiania lub debugowania w aplikacjach.

Obsługa emulatora systemu Android funkcji Hyper-V

W tej wersji dodano obsługę emulatora systemu Google Android zgodnego z funkcją Hyper-V działającego w Aktualizacji systemu Windows 10 z kwietnia 2018 (Rysunek 17). Dzięki temu można używać emulatora systemu Android firmy Google razem z innymi technologiami opartymi na funkcji Hyper-V, w tym maszynami wirtualnymi funkcji Hyper-V, narzędziami platformy Docker, emulatorem urządzeniami HoloLens i innymi. Deweloperzy aplikacji mobilnych korzystający z funkcji Hyper-V mają teraz dostęp do szybkiego emulatora systemu Android, który zawsze obsługuje najnowsze interfejsy API systemu Android, od momentu instalacji współpracuje z usługami Google Play, a także obsługuje wszystkie funkcje emulatora systemu Android, m.in. kamerę, geolokalizację i szybki rozruch.

Zrzut ekranu przedstawiający zarówno emulator systemu Google Android, jak i emulator Urządzenia HoloLens uruchomiony w tym samym czasie.
(Rysunek 17) Emulator systemu Google Android i emulator urządzenia HoloLens

Xamarin.Android Designer

Wprowadziliśmy znaczące ulepszenia środowiska projektanta platformy Xamarin.Android. Najważniejsze z nich to:

  • Wprowadzono edytor widoku złożonego, który pozwala na tworzenie, edytowanie i wyświetlanie podglądu układów w tym samym czasie (Rysunek 18).
Zrzut ekranu przedstawiający edytor widoku podzielonego platformy Xamarin.Android.
(Rysunek 18) Edytor widoku złożonego platformy Xamarin.Android
  • Ulepszono środowisko funkcji IntelliSense i zwiększono niezawodność kontrolek niestandardowych.
  • Obsługa przykładowych danych dla systemów podawanych przez system.

Xamarin.Forms Previewer

Program podglądu Xamarin.Forms obsługuje teraz przybornik w przypadku korzystania z zestawu narzędzi Xamarin.Forms w wersji 3.1.0.583944 lub nowszej. Kontrolki zestawu narzędzi Xamarin.Forms będą wyświetlane w przyborniku, dzięki czemu nowi użytkownicy tego zestawu będą je mogli łatwiej odnajdować. Można również przeciągać i upuszczać kontrolkę w edytorze kodu XAML w celu dodania jej do strony. Program podglądu elementów Xamarin.Forms jest teraz częścią edytora XAML. Można go otworzyć i zamknąć za pomocą ikony rozwijania, znajdującej się na krawędzi okienka edytora.

Python

W tej wersji dodano następujące ulepszenia dla deweloperów języka Python:

  • Funkcja IntelliSense w języku Python obsługuje teraz definicje zbioru typeshed w celu zapewnienia bogatszych wyników dla bibliotek, w którym nie można wywnioskować automatycznego uzupełniania za pośrednictwem analizy statycznej.
  • Eksperymentalny debuger, po raz pierwszy wprowadzony w wersjach zapoznawczych 15.7, jest teraz domyślnym aparatem debugowania używanym na potrzeby języka Python. Zapewnia on szybsze i bardziej niezawodne debugowanie kodu w języku Python.
  • Dodaliśmy obsługę języka Python 3.7, w tym poprawek, aby włączyć funkcje dołączania debugowania, profilowania i debugowania w trybie mieszanym (w wielu językach).
  • Aby uzyskać więcej informacji na temat powyższych funkcji, zapoznaj się z naszym wpisem w blogu Python in Visual Studio 2017 version 15.8 (Język Python w programie Visual Studio w wersji 15.8).

Migrowanie lokalnych ustawień funkcji platformy Azure

Okno dialogowe „Ustawienia aplikacji zarządzanych” dostępne na stronie podsumowania publikowania zawiera teraz wartości z pliku local.settings.json i umożliwia migrowanie wartości do zdalnej aplikacji funkcji Azure Functions hostowanej na platformie Azure.

Usługi połączone

Można teraz skonfigurować ciągłe dostarczanie funkcji platformy Azure bezpośrednio z poziomu programu Visual Studio 2017 na potrzeby rozwiązań z projektami funkcji platformy Azure.

Ulepszenie Eksploratora testów

Eksplorator testów wyświetla teraz okienko podsumowania stanu testów (dolne okienko Eksploratora testów) o większej wartości informacyjnej po wybraniu jednego z grupowań w widoku hierarchii. W okienku są teraz wyświetlane następujące informacje: liczba testów z wynikiem negatywnym lub pozytywnym albo testów nieuruchomionych w danym grupowaniu.

Nowe funkcje rozszerzalności

Language Server Protocol

Program Visual Studio oferuje teraz natywną obsługę protokołu Language Server Protocol. Twórcy rozszerzeń mogą tworzyć rozszerzenia komunikujące się z istniejącymi serwerami języków w celu dodania obsługi dodatkowych języków w programie Visual Studio. Użytkownicy rozszerzeń mogą je instalować, aby rozpocząć używanie ulubionego języka, takiego jak Rust, w programie Visual Studio.

Szablon AsyncPackage

Twórcy rozszerzeń mogą teraz używać szablonów elementów, aby tworzyć pakiety AsyncPackage, które optymalizują wydajność rozszerzeń. Przeczytaj więcej na temat pakietów AsyncPackages.

Pakiety rozszerzeń

Łatwo udostępniaj ulubiony zestaw rozszerzeń lub konfiguruj nową instalację programu Visual Studio ze wszystkimi rozszerzeniami przy użyciu pakietu rozszerzeń. Pakiety rozszerzeń umożliwiają utworzenie listy rozszerzeń, spakowanie ich w postaci rozszerzenia i szybkiego użycia w celu zbiorczego zainstalowania tych rozszerzeń.

Publikowanie rozszerzenia wiersza polecenia

Publikowanie rozszerzeń w witrynie Visual Studio Marketplace przy użyciu wiersza polecenia.

Zestaw .NET Core SDK 2.1.400

Program Visual Studio 2017 w wersji 15.8 zawiera zestaw .NET Core SDK 2.1.400. Nowe funkcje zestawu SDK:

  • Dodano szablony NUnit
  • Dodano obsługę podpisanych narzędzi globalnych
  • Ulepszono tekst pomocy w celu zwiększenia czytelności

Zamknięto 32 problemy w interfejsie wiersza polecenia platformy .NET Core
Zamknięto 20 problemów w zestawie SDK platformy .NET Core

Kontrola źródła

W przypadku projektów .NET Core pliki dodane bezpośrednio do projektu za pomocą Eksploratora plików będą teraz wyświetlać prawidłowe ikony śledzenia usługi Git i serwera TFS w Eksploratorze rozwiązań bez konieczności ponownego ładowania rozwiązania.

Rozszerzenie adaptera testowego platformy .NET

Adapter testowy platformy .NET ma następującą zmianę powodującą niezgodność i wycofanie:

  • Zmiana powodująca niezgodność: pliki csproj wszystkich projektów testowych muszą zawierać odwołanie NuGet adaptera testowego .NET. Jeśli tak nie jest, te dane wyjściowe testu będą wyświetlane w projekcie, jeśli odnajdywanie przez rozszerzenie adaptera testowego zostanie uruchomione po kompilacji lub jeśli użytkownik spróbuje uruchomić wybrane testy:
    • Projekt testowy {<Pełna ścieżka projektu> testowego} nie odwołuje się do żadnej karty NuGet platformy .NET. Odnajdywanie lub wykonywanie testów może nie działać w przypadku tego projektu. Zaleca się odwoływanie do adapterów testowych NuGet w każdym projekcie testowym w rozwiązaniu.
  • W przypadku platform testowych .NET adaptery były wydawane w pakietach i nastąpiło odejście od rozszerzeń programu Visual Studio. Obsługa adapterów testowych platformy .NET dostarczanych za pośrednictwem rozszerzeń jest przestarzała, ale nadal obsługiwana. Oznacza to, że w obszarze Narzędzia > Opcje > Test są dostępne dwie nowe opcje.
    • Pierwsza opcja umożliwia programowi Visual Studio używanie tylko adapterów testowych znalezionych w folderze zestawu testów (wypełnionym przez odwołanie NuGet adaptera testowego) lub określonych w pliku runsettings.
    • Druga opcja umożliwia programowi Visual Studio „powrót” do poprzedniego zachowania i wyszukiwanie rozszerzeń adaptera testowego w przypadku projektów bez odwołania NuGet adaptera testowego. Obie opcje są wybierane domyślnie, dlatego zachowanie domyślne nie zmieni się w tej wersji.
  • Uwaga: ta zmiana nie wpływa na adaptery testowe inne, niż platformy .NET.

Obsługa wpisów tajnych programu ASP.NET .NET Framework

W przypadku projektów programu .NET Framework na platformie ASP.NET, które są przeznaczone dla platformy .NET Framework 4.7.1 lub nowszej, można teraz otwierać i przechowywać wpisy tajne nie do użycia w kodzie źródłowym w pliku usersecrets.xml, klikając prawym przyciskiem projekt i wybierając pozycję „Zarządzane wpisy tajne użytkowników”.

Zwiększanie wydajności programu ASP.NET .NET Framework

Jeśli przywoływany pakiet kompilatora .NET jest nieaktualny w projekcie .NET Framework platformy ASP.NET, po otwarciu takiego projektu program Visual Studio wyświetli monit o uaktualnienie tego pakietu w celu poprawienia wydajności kompilacji.

.NET Framework 4.7.2

Program Visual Studio 2017 w wersji 15.8 oferuje teraz narzędzia deweloperskie programu .NET Framework 4.7.2 na wszystkich platformach z dołączonym środowiskiem uruchomieniowym w wersji 4.7.2. Program .NET Framework 4.7.2 oferuje kilka nowych funkcji i ulepszeń, jak również liczne poprawki niezawodności, stabilności, bezpieczeństwa i wydajności.

Więcej informacji na temat programu .NET Framework 4.7.2 można znaleźć w następujących artykułach:

Opóźnianie ładowania pakietów

Program Visual Studio opóźnia teraz ładowanie pakietów asynchronicznych, które są konfigurowane do ładowania automatycznego po pełnym uruchomieniu środowiska IDE programu Visual Studio i załadowaniu rozwiązania. Ta zmiana nie wpływa na pakiety ładowane automatycznie w sposób synchroniczny. Użytkownicy mogą monitorować postęp, korzystając z centrum stanu zadań w lewym dolnym rogu paska stanu. Twórcy rozszerzeń, którzy tworzą pakiety asynchroniczne, powinni testować swoje rozszerzenia. Aby uzyskać więcej informacji, zobacz Improving the responsiveness of critical scenarios by updating auto load behavior for extensions (Skracanie czasu reakcji scenariuszy o kluczowym znaczeniu przez aktualizowanie automatycznego ładowania dla rozszerzeń).


---

Ikona informacji o wersji Powiadomienia o biuletynie zabezpieczeń programu Visual Studio 2017 w wersji 15.8

Wydanie usługi programu Visual Studio 2017 w wersji 15.8.7 — wydane 10 października 2018 r.

CVE-2018-8292 Luka w zabezpieczeniach platformy .NET Core umożliwiająca ujawnienie informacji

Na platformie .NET Core istnieje luka w zabezpieczeniach pozwalająca pominąć funkcję zabezpieczeń, gdy informacje dotyczące uwierzytelniania HTTP są przypadkowo ujawniane w żądaniu wychodzącym napotykającym przekierowanie HTTP. Osoba atakująca, która z sukcesem wykorzystałaby tę lukę w zabezpieczeniach, mogłaby użyć zdobytych informacji do głębszego naruszenia bezpieczeństwa aplikacji internetowej. Aktualizacja zabezpieczeń usuwa tę lukę w zabezpieczeniach, poprawiając sposób obsługi przekierowań HTTP w aplikacji .NET Core.

Wydanie usługi programu Visual Studio 2017 w wersji 15.8.4 — wydane 11 września 2018 r.

CVE-2018-8409 Odmowa usługi na platformie .NET Core

Luka w zabezpieczeniach typu „odmowa usługi” występuje na platformie .NET Core 2.1, gdy element System.IO.Pipelines nieprawidłowo obsługuje żądania. Tę lukę w zabezpieczeniach może wykorzystać atakujący i spowodować odmowę usługi dla aplikacji korzystającej z elementu System.IO.Pipelines. Lukę w zabezpieczeniach można wykorzystać zdalnie bez uwierzytelniania. Zdalny nieuwierzytelniony atakujący może wykorzystać tę lukę, dostarczając do aplikacji specjalnie przygotowane żądania.

CVE-2018-8409 Odmowa usługi na platformie ASP.NET Core

Luka w zabezpieczeniach typu „odmowa usługi” występuje na platformie ASP.NET Core 2.1, gdy nieprawidłowo obsługuje ona żądania. Tę lukę w zabezpieczeniach może wykorzystać atakujący i spowodować odmowę usługi dla aplikacji internetowej platformy ASP.NET Core. Lukę w zabezpieczeniach można wykorzystać zdalnie bez uwierzytelniania. Zdalny nieuwierzytelniony atakujący może wykorzystać tę lukę, dostarczając do aplikacji platformy ASP.NET Core specjalnie przygotowane żądania internetowe.

Program Visual Studio 2017 w wersji 15.8 — wydany 14 sierpnia 2018 r.

CVE-2018-0952 Luka w zabezpieczeniach dotycząca podniesienia poziomu uprawnień standardowego modułu zbierającego centrum diagnostyki

W usłudze Visual Studio istnieje luka w zabezpieczeniach dotycząca podnoszenia poziomu uprawnień, co może prowadzić do uzyskania uprawnień systemowych przez użytkownika nie będącego administratorem podczas zapisywania plików. Osoba atakująca, która wykorzysta tę lukę, może zapisywać pliki jako system, mając dostęp tylko na poziomie użytkownika. Ta aktualizacja zabezpieczeń rozwiązuje ten problem, personifikując bieżącego użytkownika w celu weryfikacji dostępu do lokalizacji pliku.

Program Visual Studio 2017 w wersji 15.8 (wersja zapoznawcza 4) — wydany 10 lipca 2018 r.

CVE-2018-8172 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu w programie Visual Studio

Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu, która może prowadzić do wykorzystania maszyny użytkownika po otwarciu specjalnie przygotowanego projektu lub pliku zasobów. Aktualizacja zabezpieczeń usuwa tę lukę w zabezpieczeniach, poprawiając sposób sprawdzania źródłowej adiustacji pliku.

CVE-2018-8260 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu w programie .NET Framework

Istnieje luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu w oprogramowaniu platformy .NET, która może prowadzić do wykorzystania maszyny użytkownika przez umożliwienie osobom atakującym uruchamiania dowolnego kodu w kontekście bieżącego użytkownika. Aktualizacja zabezpieczeń usuwa tę lukę w zabezpieczeniach, poprawiając sposób sprawdzania źródłowej adiustacji pliku na platformie .NET.

CVE-2018-8232 Luka w zabezpieczeniach polegająca na nieuprawnionej modyfikacji w programie Microsoft Macro Assembler na platformie .NET

Luka w zabezpieczeniach polegająca na nieuprawnionej modyfikacji związana z nieprawidłową weryfikacją kodu przez program Microsoft Macro Assembler. Aktualizacja zabezpieczeń usuwa tę lukę w zabezpieczeniach przez sprawdzenie, czy program Microsoft Macro Assembler prawidłowo weryfikuje logikę kodu.

CVE-2018-8171 Luka w zabezpieczeniach dotycząca obejścia funkcji zabezpieczeń programu ASP.NET Core

Luka w zabezpieczeniach dotycząca obejścia funkcji zabezpieczeń programu ASP.NET Core istnieje, gdy liczba niepoprawnych prób zalogowania nie zostanie zweryfikowana, co może prowadzić do podejmowania przez osobę atakującą nieskończonych prób uwierzytelnienia. Aktualizacja usuwa tę lukę w zabezpieczeniach, weryfikując liczbę niepoprawnych prób logowania.

Program Visual Studio 2017 w wersji 15.8 (wersja zapoznawcza 3) — wydany 26 czerwca 2018 r.

CVE-2018-11235 Biuletyn zabezpieczeń firmy Microsoft dotyczący luk w zabezpieczeniach usługi Git

Usunęliśmy luki w zabezpieczeniach usługi Git, które zostały ujawnione przez społeczność Git. Luka w zabezpieczeniach może prowadzić do wykonania dowolnego kodu, gdy użytkownik sklonuje złośliwe repozytorium.

Program Visual Studio 2017 w wersji 15.8 (wersja zapoznawcza 1) — wydany 8 maja 2018 r.

CVE-2018-0765 Biuletyn zabezpieczeń firmy Microsoft dotyczący luki w zabezpieczeniach umożliwiającej przeprowadzenie ataku typu „odmowa usługi” względem platformy .NET Core

  • Firma Microsoft publikuje ten biuletyn zabezpieczeń, aby zapewnić informacje na temat luki w zabezpieczeniach platformy .NET Core i .NET Native w wersji 2.0. W tym biuletynie podano też wskazówki dla deweloperów dotyczące aktualizowania aplikacji w celu usunięcia tej luki w zabezpieczeniach.
  • Firma Microsoft dowiedziała się o luce w zabezpieczeniach umożliwiającej przeprowadzenie ataku typu „odmowa usługi”, jeśli program .NET Framework lub .NET Core nieprawidłowo przetworzy dokumenty XML. Tę lukę w zabezpieczeniach może wykorzystać atakujący i spowodować odmowę usługi dla aplikacji .NET Framework, .NET Core lub .NET Native.
  • Aktualizacja usuwa tę lukę w zabezpieczeniach, poprawiając obsługę przetwarzania dokumentów XML przez aplikacje .NET Framework, .NET Core i .NET Native.
  • W przypadku aplikacji ASP.NET Core deweloperom zaleca się również zaktualizowanie do platformy ASP.NET Core 2.0.8.

Ikona informacji o wersjiVisual Studio 2017 w wersji 15.8.1

wydane 17 sierpnia 2018 r.

Najważniejsze problemy rozwiązane w wersji 15.8.1

Problemy rozwiązane w wersji 15.8.1:

  • Rozwiązano problem polegający na nieoczekiwanym zamykaniu programu Visual Studio po zamknięciu okna przeglądarki podczas debugowania projektu sieci Web.

Ikona informacji o wersjiVisual Studio 2017 w wersji 15.8.2

wydana 28 sierpnia 2018 r.

Najważniejsze problemy rozwiązane w wersji 15.8.2

Są to problemy zgłaszane przez klientów i rozwiązane w wersji 15.8.2:


Ikona informacji o wersjiVisual Studio 2017 w wersji 15.8.3

wydanej 6 września 2018 r.

Najważniejsze problemy rozwiązane w wersji 15.8.3

Są to problemy zgłaszane przez klientów rozwiązane w wersji 15.8.3:


Ikona informacji o wersjiVisual Studio 2017 w wersji 15.8.4

wydanej 11 września 2018 r.

Najważniejsze problemy rozwiązane w wersji 15.8.4

Są to problemy zgłaszane przez klientów rozwiązane w wersji 15.8.4:

Powiadomienia o biuletynach zabezpieczeń


Ikona informacji o wersjiVisual Studio 2017 w wersji 15.8.5

wydany 20 września 2018 r.

Podsumowanie nowości w wersji 15.8.5

  • Narzędzia Visual Studio Tools dla programu Xamarin obsługują teraz środowisko Xcode 10.

Najważniejsze problemy rozwiązane w wersji 15.8.5

Są to problemy zgłaszane przez klientów rozwiązane w wersji 15.8.5:

Szczegółowe informacje o nowościach w wersji 15.8.5

Visual Studio Tools dla programu Xamarin

Narzędzia Visual Studio Tools dla programu Xamarin obsługują teraz środowisko Xcode 10, co umożliwia kompilowanie i debugowanie aplikacji dla systemów iOS 12, tvOS 12 i watchOS 5. Zobacz artykuł, jak można się przygotować na system iOS 12, i nasze wprowadzenie do systemu iOS 12, aby uzyskać więcej informacji na temat nowych dostępnych funkcji.


Ikona informacji o wersjiVisual Studio 2017 w wersji 15.8.6

wydany 2 października 2018 r.

Podsumowanie nowości w wersji 15.8.6

Najważniejsze problemy rozwiązane w wersji 15.8.6

Są to problemy zgłaszane przez klientów rozwiązane w wersji 15.8.6:

Szczegółowe informacje o nowościach w wersji 15.8.6

Najnowszy zestaw Windows 10 SDK dla deweloperów platformy uniwersalnej systemu Windows

Najnowszy zestaw Windows 10 SDK (kompilacja 17763) jest teraz dostępny jako składnik opcjonalny w obciążeniu programowania dla platformy uniwersalnej systemu Windows. Można dodać ten zestaw SDK do obciążenia, zaznaczając pole wyboru Windows 10 SDK (10.0.17763.0).


Ikona informacji o wersjiVisual Studio 2017 w wersji 15.8.7

wydana 10 października 2018 r.

Co nowego w wersji 15.8.7

Azure DevOps

Usługa Visual Studio Team Services zmieniła nazwę na Azure DevOps! Nowa nazwa będzie widoczna we wtyczce Team Explorer i w odwołaniach w całym programie Visual Studio.

Powiadomienia o biuletynach zabezpieczeń

CVE-2018-8292 Luka w zabezpieczeniach platformy .NET Core umożliwiająca ujawnienie informacji


Ikona informacji o wersjiVisual Studio 2017 w wersji 15.8.8

wydana 24 października 2018 r.

Najważniejsze problemy rozwiązane w wersji 15.8.8

Są to problemy zgłaszane przez klientów, rozwiązane w wersji 15.8.8:


Ikona informacji o wersjiVisual Studio 2017 w wersji 15.8.9

wydana 2 listopada 2018 r.

Najważniejsze problemy rozwiązane w wersji 15.8.9

Są to problemy zgłaszane przez klientów i rozwiązane w wersji 15.8.9:


Znane problemy

Zobacz wszystkie znane problemy w programie Visual Studio 2017 w wersji 15.8 i dostępne dla nich obejścia.

Visual Studio 2017 — znane problemy


Opinie i sugestie

Chcemy poznać Twoje zdanie! Problemy możesz zgłaszać za pomocą opcji Zgłoś problem w prawym górnym rogu instalatora lub bezpośrednio w środowisku IDE programu Visual Studio. Ikona Zgłoś ikonę problemu znajduje się w prawym górnym rogu. Zgłaszanie sugestii dotyczących produktów i śledzenie problemów jest możliwe w społeczności deweloperów programu Visual Studio, gdzie można też zadawać pytania, znajdować odpowiedzi i proponować nowe funkcje. Możesz też uzyskać bezpłatną pomoc dotyczącą instalacji za pośrednictwem naszej pomocy technicznej przez czat na żywo.


Blogi

Skorzystaj ze szczegółowych informacji i zaleceń dostępnych w witrynie blogów dotyczących narzędzi programistycznych, aby być na bieżąco ze wszystkimi nowymi wersjami i zyskać dostęp do szczegółowych wpisów dotyczących szerokiego zakresu funkcji.

Blogi dotyczące narzędzi deweloperskich


Historia informacji o wersji programu Visual Studio 2017

Więcej informacji na temat poprzednich wersji programu Visual Studio 2017 można znaleźć na stronie Historia informacji o wersji programu Visual Studio 2017.


Początek strony