Udostępnij przez


Informacje o wersji programu Visual Studio 2017 w wersji 15.8

Uwaga / Notatka

Obsługiwana wersja programu Visual Studio 2017 to wersja 15.9.

Ważne

Nie jest to najnowsza wersja programu Visual Studio. Aby pobrać najnowszą wersję, odwiedź stronę https://visualstudio.microsoft.com/downloads/ i zapoznaj się z informacjami o wersji programu Visual Studio 2022.

Visual Studio Blog

Blog programu Visual Studio jest oficjalnym źródłem szczegółowych informacji o produkcie od zespołu inżynierów programu Visual Studio. Szczegółowe informacje o wersjach programu Visual Studio 2017 w wersji 15.8 można znaleźć w następujących wpisach:

Wydania programu Visual Studio 2017 w wersji 15.8

Podsumowanie godnych uwagi 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 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

wydany 14 sierpnia 2018 r.

Nowe funkcje w wersji 15.8

Install

Teraz masz możliwość pobrania wszystkich plików instalacyjnych przed rozpoczęciem instalacji.

  • Aby użyć tej nowej opcji, wybierz opcję "Pobierz wszystko, a następnie zainstaluj" w instalatorze (Rysunek 1). Sugerujemy tę opcję, jeśli masz wolniejsze połączenie internetowe.
  • Opcja domyślna pozostaje "Zainstaluj podczas pobierania", która pobiera i instaluje się równolegle.
Pobierz tion
(Rysunek 1) Opcja pobierania

Performance

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

  • Przełączanie gałęzi dla projektów C#, VB i C++ jest znacznie szybsze w przypadku dużych rozwiązań, ponieważ ponowne ładowanie rozwiązań nie jest już wymagane.
  • Skróciliśmy czas zwalniania i ponownego ładowania małego zestawu projektów C# i VB w dużych rozwiązaniach od kilku minut do kilku sekund.
  • Dodaliśmy opcję wyłączenia 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.
    • Przełącz tę opcję w obszarze Narzędzia > Opcje > Projekty > Rozwiązania > ogólne.

Wydajność testu

Znacznie poprawiliśmy wydajność podczas uruchamiania kilku testów w dużym rozwiązaniu z wieloma projektami testowymi. W naszych laboratoriach rozwiązanie z ponad 10 000 MSTests wykonało pojedynczy test do 82% szybciej!

Poprawa wydajności języka Visual Basic

Visual Basic zapewnia teraz znaczną poprawę wydajności podczas używania wzorca CInt(Fix(number)) do konwertowania z typów innych niż liczba całkowita do liczb całkowitych.

Profilowanie wydajności

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

  • Dodaliśmy możliwość rozpoczęcia 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 oczekiwania na scenariusz godny badania użycia procesora CPU. Jeśli zbieranie użycia procesora CPU jest wyłączone podczas uruchamiania, profiler wydajności nie będzie zbierał żadnych danych przykładowych stosu użycia procesora CPU, dopóki nie zostanie on specjalnie włączony. Spowoduje to zmniejszenie ilości danych do zbierania i analizowania, dzięki czemu badania wydajności będą wydajniejsze.

    • Aby rozpocząć sesję z wyłączoną kolekcją przykładu 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 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 przycisk Start na stronie uruchamiania profilera wydajności), zostanie wyświetlony wykres wykorzystania procesora CPU (Rysunek 3), który umożliwia kontrolowanie profilowania procesora CPU. Aby włączyć zbieranie danych stosu użycia procesora CPU, wybierz pozycję Włącz profilowanie procesora CPU w środku widoku lub kliknij pozycję Zarejestruj profil procesora CPU tuż poniżej wykresu wykorzystania procesora CPU. Możesz kliknąć pozycję Zarejestruj profil procesora CPU , aby włączyć/wyłączyć zbieranie przykładowych danych tyle razy, ile chcesz. Kolor grafu wykorzystania procesora CPU zmienia się, aby wskazać, czy przykładowa kolekcja jest włączona/wyłączona w tym momencie.

      Widok monitorowania narzędzia użycie procesora CPU
      (Rysunek 3) Wykres wykorzystania procesora CPU
  • Dodaliśmy narzędzie do śledzenia alokacji obiektów platformy .NET:

    • Narzędzie do śledzenia alokacji obiektów platformy .NET dołącza do rodziny narzędzi dostępnych w profilerze wydajności. Wywołanie tego narzędzia dla sesji profilera wydajności inicjuje kolekcję śledzenia stosu dla każdej alokacji obiektów platformy .NET, która występuje w aplikacji docelowej. Te dane stosu są analizowane wraz z informacjami o typie obiektu i rozmiarze, aby wyświetlić szczegółowe informacje o aktywności pamięci aplikacji. Możesz szybko określić wzorce alokacji w kodzie i zidentyfikować anomalie. Ponadto w przypadku zdarzeń odzyskiwania pamięci (GC) można łatwo określić, które obiekty zostały zebrane i zachowane i szybko zidentyfikować typy obiektów, które dominują w użyciu pamięci aplikacji.
    • Jest to szczególnie przydatne w przypadku składników zapisywania interfejsu API w celu zminimalizowania alokacji. Wiele aplikacji spowoduje przekroczenie limitów buforu związanych z zbieraniem danych diagnostycznych, ale małe aplikacje testowe wykonujące kluczowe scenariusze interfejsu API mogą być dość dobrze diagnozowane. Podczas wykonywania aplikacji testowej profiler wydajności wyświetla graf liniowy obiektów dynamicznych (liczba), a także wykres słupkowy delta obiektu (% zmiany).
    • Aby użyć narzędzia do śledzenia alokacji obiektów platformy .NET, wyświetl stronę uruchamiania profilera wydajności (Rysunek 4), wybierz element docelowy do profilu (domyślnym elementem docelowym jest projekt startowy w rozwiązaniu), zaznacz pozycję Śledzenie alokacji obiektów platformy .NET w obszarze Dostępne narzędzia, a następnie kliknij przycisk Start.
    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ępne za pośrednictwem alt-F2):

  • Widok Drzewo wywołań domyślnie wyświetla asynchroniczne wykonywanie według stosu wywołań logicznych. To zachowanie można wyłączyć, usuwając zaznaczenie opcji Połącz kod asynchroniczny na liście rozwijanej Filtr w widoku głównym Użycie procesora CPU.
  • Dodaliśmy widok Moduły/Funkcje, który wyświetla informacje o wydajności według modułu (dll) i funkcji w module. Widok Moduły/funkcje można wyświetlić z menu kontekstowego dostępnego podczas wybierania funkcji w widoku głównym Użycie procesora CPU lub z listy rozwijanej Widok w widokach Drzewo wywołań lub Wywołujący/Wywoływany.
  • Wskazanie wystąpienia zostało dodane do grafu Użycie procesora CPU w widoku głównym narzędzia Użycie procesora CPU. Możesz wyświetlić wystąpienia, gdy funkcja jest wykonywana (na przykład na stosie), klikając dwukrotnie funkcję wymienioną w dowolnych widokach użycia procesora CPU.

Produktywność

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

  • Możesz wykonać dodatkowe oczyszczanie kodu za pomocą Format dokumentu (Ctrl + K, D lub Ctrl + E, D) na potrzeby programowania w języku C#. Skonfiguruj oczyszczanie, przechodząc do pozycji Narzędzia>Opcje>Edytor> tekstówC#>Formatowanie>stylu> koduOgólne.
  • Dodaliśmy więcej refaktoryzacji i szybkich akcji za pomocą kombinacji Ctrl + . lub Alt + Enter:
    • Odwróć jeśli umożliwia odwrócenie logiki w instrukcjach if-else. Umieść kursor w słowie if kluczowym, aby wyzwolić tę refaktoryzację.
    • Dodanie parametru z metody callsite umożliwia dodanie parametru do metody przez dodanie argumentu do metody wywołania lokacji i wyzwalanie szybkich akcji i refaktoryzacji.
    • Usuń niepotrzebne nawiasy usuwa nawiasy wokół operatorów binarnych, które nie są niezbędne do kompilacji. Tę regułę stylu można skonfigurować za pomocą opcji Narzędzia>Edytor>>C#>Styl> koduOgó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 wOpcje>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 :
    • Przejdź do bloku otaczającego (Ctrl + Alt + UpArrow) umożliwia szybkie przechodzenie do początku otaczającego bloku kodu.
    • Przejdź do następnego/poprzedniego problemu (Alt + PgUp/PgDn) umożliwia przejście do następnego/poprzedniego problemu (błąd, zyggle, żarówka).
    • Przejdź do elementu członkowskiego (Ctrl + T, M) ma teraz zakres do pliku domyślnie. Możesz zmienić domyślne ustawienie z powrotem na rozwiązanie, przełączając pozycję Zakres na Bieżący dokument (Ctrl + Alt + C).
  • Teraz można tworzyć punkty wstawiania i zaznaczenia w wielu, dowolnych lokalizacjach w pliku z obsługą wielu karetki. Dzięki temu można dodawać, edytować lub usuwać tekst w wielu miejscach jednocześnie.
    • Wstaw daszki za pomocą Ctrl + Alt + LeftMouseClick.
    • Dodaj zaznaczenie i daszek w następnej lokalizacji, która pasuje do bieżącego zaznaczenia za pomocą Shift + Alt + Ins.
    • Zobacz Edytowanie > wielu karetki , aby uzyskać pełną listę akcji.
  • Uzyskaj dostęp do menu nawigacji kontekstowej za pomocą Alt + '.
  • Zachowaj spójność powiązania z dwoma nowymi profilami klawiatury: Visual Studio Code i ReSharper (Visual Studio). Te schematy można znaleźć w obszarze Narzędzia > Opcje >> Środowisko Klawiatura i górne menu rozwijane.

Debugowanie

Ta wersja zawiera następujące ulepszenia debugowania:

  • Jeśli masz zainstalowane więcej niż jedno wystąpienie programu Visual Studio 2017, możesz teraz wybrać wystąpienie, do którego ma zostać wdrożone rozszerzenie podczas debugowania (Rysunek 5). W ten sposób można na przykład opracowywać zawartość w kanale wydania programu Visual Studio podczas debugowania w kanale w wersji zapoznawczej.

    Wybierz wystąpienie debugowania
    (Rysunek 5) Wybieranie wystąpienia debugowania
  • Teraz możesz dołączyć debuger migawki bezpośrednio ze strony Podsumowanie publikowania (Rysunek 6).

    Dołączanie debugera migawek ze strony Podsumowanie publikowania
    (Rysunek 6) Dołączanie debugera migawek z podsumowania publikowania
  • Teraz obsługujemy wyświetlanie zadań zarządzanych za pośrednictwem okna Zadania podczas debugowania minidumps ze stertą.

Narzędzia dla deweloperów uniwersalnej platformy systemu Windows

Wprowadziliśmy wiele ważnych ulepszeń projektanta XAML dla projektów przeznaczonych dla platformy uniwersalnej systemu Windows z docelową wersją platformy windows 10 Fall Creators Update (kompilacja 16299) lub nowszą. Te ulepszenia obejmują:

  • Teraz możesz edytować kolekcje w Inspektorze właściwości.
  • Projektant umożliwia teraz edytowanie szablonów i stylów, w tym w przypadku, gdy definicje dla tych jednostek są zdefiniowane w innych dokumentach.
  • Właściwości typu IconElement (np. Icon in an AppBarButton) mają teraz edytor niestandardowy w Inspektorze właściwości, co ułatwia ustawianie tych właściwości.
  • Projektant, edytor i Edytuj i Kontynuuj powinny teraz działać poprawnie z trybem x:DefaultBindMode.
  • Środowisko programu Visual State Manager w programie Blend obsługuje teraz funkcję 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 , Spani Memory-like były możliwe w refjęzyku F#. Funkcje tego typu obejmują:

  • Nowy voidptr typ.
  • Nowe NativePtr.ofVoidPtr funkcje i NativePtr.toVoidPtr w języku FSharp.Core.
  • Nowe typy inref<'T> i outref<'T>, które są odpowiednio byrefs tylko do odczytu i byrefs tylko do zapisu. in ref Odpowiada to i out ref w języku C#.
  • Możliwość tworzenia ByRefLike struktur (takich jak Span i ReadOnlySpan).
  • Możliwość tworzenia IsReadOnly struktur.
  • Niejawne wyłusczenie byrefwartości - i inref-zwraca z metod.
  • Możliwość tworzenia składowych rozszerzeń w systemie 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ę w celu dostosowania funkcji do sposobu, w jaki język C# obsługuje reffunkcję -returns. Komunikat o błędzie jest używany, gdy adnotacja typu wskazuje, że jest teraz używane niejawne wyłudzenie ref- zwracania.

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 struktury jest teraz uważany za inref<MyStruct>element z błędem, który sugeruje dodanie pola modyfikowalnego, jeśli chcesz zmodyfikować strukturę.

Więcej informacji na temat span konstrukcji podobnych do i refmożna znaleźć w specyfikacji RFC dla 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 cukier składniowy jest odpowiednikiem let!match wyniku. Więcej informacji można dowiedzieć się w temacie RFC for match!.

Złagodzenie potrzeby upcast yield z użyciem wyrażeń sekwencjonowania, 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 specyfikacji RFC dla tej funkcji.

Zezwalanie na wcięcie w nawiasach listy i 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#. Spowoduje to teraz przeniesienie wyrażeń tablic i list do tego samego stanu spójności co wyrażenia sekwencji. Więcej informacji można znaleźć w specyfikacji RFC dla 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 specyfikacji RFC dla 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).
  • Usunęliśmy usterkę powodującą użycie AccessViolatioNException funkcji yield! z wyliczeniami opartymi na strukturach.
  • Teraz można dziedziczyć z FSharpFunc powrotem.
  • 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 wykonać odpowiednik przekierowania zestawu na platformie .NET Core.
  • Usunęliśmy usterkę polegającą na tym, że komunikat o błędzie używany podczas próby użycia wywołania dynamicznego w funkcjach wbudowanych był ignorowany. Komunikat o błędzie jest teraz propagowany.
  • Język F# uwzględnia teraz flagę WarningsNotAsErrors , którą można ustawić w plikach projektu.
  • Gdy gałęzie dopasowania wzorca nie zwracają tego samego warunku typu komunikatu o błędzie, został zaktualizowany tak, aby był bardziej przyjazny przez Isaac Abraham.
  • Usterka błędu wewnętrznego podczas kompilowania implementacji interfejsu, która nie zawiera przeciążonej implementacji metody, została usunięta przez Steffena Forkmanna.
  • Niektóre niepotrzebne kopiowanie tablic w fazie leksykowania kompilatora zostało usunięte przez Gauthiera Segaya.
  • 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).
  • "#nowarn "2003" jest teraz szanowany, przyczynił się 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ętrzną usterkę struktury danych QueueList przez Steffena Forkmanna.
  • Różne mniejsze optymalizacje i działania oczyszczania kodu zostały przyczyniły się przez 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 znaczącą pracę w celu ulepszenia śladów stosu dla async { } wyrażeń obliczeniowych. Teraz powinien być widoczny kod użytkownika i numery wierszy użytkownika w śladach stosu. Więcej informacji można znaleźć w specyfikacji RFC dla tej funkcji.
  • FuncConvert.FromFuncinterfejsy API tego typu FuncConvert.FromAction i System.FuncSystem.Action przeciążenia, które ułatwiają współdziałanie z językiem C#. Więcej informacji można znaleźć w specyfikacji RFC dla tej funkcji.
  • ValueOption to nowy typ dostępny, który jest pierwszym w zestawie przyszłych funkcji, które ostatecznie mają na celu lepszą wydajność dla aktywnych wzorców. Więcej informacji można znaleźć w specyfikacji RFC dla tej funkcji.
  • TryGetValue jest teraz nowym elementem członkowskim w typie mapy języka F#. Więcej informacji można znaleźć w specyfikacji RFC dla tej funkcji.
  • Naprawiono wysokie użycie procesora CPU podczas pierwszego wywołania MailboxProcessor.TryReceiveklasy .
  • Porównanie dla bool teraz używa szybkiego porównania ogólnego, współautor : Vasily Kirichenko.
  • Tekst podsumowania dla Array.allPairs elementu został zaktualizowany, aby był poprawny, współ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#. Oto najważniejsze informacje:

  • Poprawiliśmy wydajność funkcji IntelliSense dla projektów w stylu zestawu SDK platformy .NET dla wszystkich formularzy, w tym tych, które korzystają z wielu elementów docelowych.
  • Wysiłki społeczności związane z analizowaniem i ulepszaniem wydajności funkcji IntelliSense dla bardzo dużych plików zostały przyczyniły się vasily Kirichenko, Steffen Forkmann i Gauthier Segay. Funkcja IntelliSense w bardzo dużych plikach (10 tys. wierszy kodu) jest teraz mniej więcej dwa razy większa.
  • Ostrzeżenie dotyczące nieaktualnej biblioteki FSharp.Core (pomimo zainstalowania pakietu) nie jest już obecne w projektach w stylu zestawu SDK platformy .NET.
  • Etykietka narzędzia opisu, która wyświetla dokumentację XML dla elementu członkowskiego po . funkcji IntelliSense, nie przekracza już limitu czasu po 10 sekundach.
  • Usunięto usterkę polegającą na tym, że nie można było ustawić punktów przerwania w argumentach konstruktora obiektu.
  • Usunięto usterkę polegającą na tym, że zmieniono nazwę symbolu, gdy jest to parametr ogólny.
  • 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 uzupełnianie nawiasów klamrowych transakcyjnych jest teraz dostępne dla ()par , [], {}, [||]i [<>] nawiasów klamrowych. Wykonaliśmy tę pracę we współpracy z Gibran Rosa.
  • Teraz możesz przejść do definicji za pomocą Ctrl + Kliknięcie symbolu języka F#. Ustawienia tego gestu są również przestrzegane w oknie Opcje narzędzi>.
  • Interfejs użytkownika wydajności funkcji IntelliSense został zmodyfikowany, aby umożliwić konfigurację nieaktualnych informacji dotyczących sprawdzanie typów dla różnych funkcji IDE. Wyjaśnienia dla każdej opcji są teraz obecne w etykietkach narzędzi dla ustawień.
  • Wyróżnianie dopasowania nawiasów klamrowych teraz poprawnie wyróżnia nawiasy klamrowe, ukończone we współpracy z Vasily Kirichenko.
  • Przejdź do definicji teraz prawidłowo przechodzi, gdy typ jest definiowany rekursywnie, współautor : Vasily Kirichenko.
  • Usterka polegająca na tym, że automatycznie zaimportowana przestrzeń nazw nie została otwarta, gdy górna część pliku była pusta, została usunięta przez Vasily Kirichenko.
  • Usunięto usterkę polegającą na tym printf , że specyfikatory zawierające kropki były błędnie kolorowane przez Vasilya Kirichenko.
  • Usunięto usterkę polegającą na tym, że wszystkie otwarte zostały uznane za nieużywane wewnątrz modułu cyklicznego , został naprawiony przez Vasily Kirichenko.
  • Wydajność analizatora Nieużywane otwarcia została znacznie zwiększona przez Vasily Kirichenko.
  • Autouzupełnianie atrybutów sugeruje teraz tylko opcje, które są rzeczywiście atrybutami, autor : Vasily Kirichenko.
  • Etykietki narzędzi Pomocy podpisu są teraz generowane dla parametrów statycznych dostawcy typów w lokacji wywołania konstruktora, współautor : Vasily Kirichenko.
  • Usterka polegająca na tym, że typy wartości używane jako jednostki miary były kolorowane, ponieważ typy referencyjne zostały naprawione przez Vasily Kirichenko.
  • Usterka polegająca na tym, że kolorowanie semantyczne mogło zniknąć dla niektórych plików podczas przewijania, zostało naprawione przez Vasily Kirichenko.
  • Obecnie istnieje eksperymentalna implementacja CodeLens, współautor : 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.
  • Kod używany Dictionary z wywołaniami ContainsKey i kolejne Item wywołania został zmieniony na użycie TryGetValuemetody , przez Eugene Auduchinok.
  • Jakob Majoka przyczynił się również do korzystania z innego interfejsu API dla etykietek narzędzi.

Ulepszenia infrastruktury, tworzenia pakietów i open source

Wprowadziliśmy następujące ulepszenia dotyczące infrastruktury, tworzenia pakietów i naszego środowiska współtworzenia 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 control.fs/control.fsipliki w pliku FSharp.Core zostały podzielone naasync.fs/async.fsi , , event.fs/event.fsieventmodule.fs/eventmodule.fsi,mailbox.fs/mailbox.fsi , i .observable.fs/observable.fsi
  • Dodaliśmy wersje w stylu zestawu SDK platformy .NET artefaktów testów obciążeniowych wydajności projektu.
  • Usunęliśmy Newtonsoft.json z naszej bazy kodu i masz teraz jeden mniej pakietu pobrany dla współautorów systemu operacyjnego.
  • Teraz używamy najnowszych wersji elementu System.Collections.Immutable i System.Reflection.Metadata.

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

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

  • Nowy, eksperymentalny preprocesor oparty na tokenach zgodny ze standardami języka C++11 (w tym funkcje preprocesora C99), włączony z przełącznikiem /experimental:preprocessor. Jest to kontrolowane za pomocą makra _MSVC_TRADITIONAL, które jest definiowane 1 podczas korzystania z tradycyjnego preprocesora preprocesora i 0 w przypadku korzystania z nowego preprocesora zgodnego ze standardami eksperymentalnymi.
  • Wiersz polecenia dla deweloperów programu Visual Studio obsługuje włączanie środowisk uruchomieniowych-vcvars_spectre_libs = spectre visual C++ Spectre variant 1 (). Więcej informacji na temat ograniczania ryzyka spectre jest dostępne na blogu zespołu Visual C++.
  • Dwa nowe dodatki do optymalizatora SSA koncentrują się na nowoczesnej generacji kodu C++: eliminacji nadmiarowego magazynu i składania nadmiarowych gałęzi.
  • Zoptymalizowana wydajność we/wy mapowanej pamięci w konsolidatorze w celu skrócenia czasu łączenia.

Programowanie międzyplatformowe języka C++

Dodaliśmy, ulepszyliśmy i dodaliśmy następujące elementy do programowania międzyplatformowego języka C++ dla tej wersji:

  • Dodano szablon Dodaj>nowy element do generowania pliku w formacie clang zgodnie z konwencją kodowania określoną dla formatu ClangFormat wobszarze Opcje>. Jeśli wybrano konwencję programu Visual Studio, wygenerowany plik próbuje dopasować bieżącą konfigurację formatowania programu Visual Studio użytkownika z opcji narzędzi>.
  • Zaktualizowano dostarczoną wersję clang-format.exe do wersji 6.0.0.
  • Szablony upraszczające dodawanie konfiguracji do CppProperties.json.
  • Dodano szablony, aby uprościć dodawanie konfiguracji do CMakeSettings.json(Rysunek 7).
Szablony konfiguracji dla narzędzia CMake
(Rysunek 7) Szablony konfiguracji dla narzędzia CMake

Produktywność języka C++

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

  • Etykietki narzędzi Szybkich informacji języka C++ w makrach pokazują teraz, do czego się rozszerzają, a nie tylko ich definicję. Jest to szczególnie przydatne w przypadku złożonych makr odwołujących się do innych makr, ponieważ wyjaśnia, jaki identyfikator makra jest zastępowany przez preprocesor.
  • Dodano nową żarówkę szybkiego naprawiania w celu konwertowania podstawowych makr na constexpr jako nowego narzędzia do modernizacji kodu.
  • Funkcja IntelliSense dla szablonów udostępnia więcej szczegółów na temat argumentów szablonu, aby w pełni wykorzystać funkcję IntelliSense w treści szablonu (Rysunek 8).
Funkcja IntelliSense szablonu
(Rysunek 8) Funkcja IntelliSense szablonu
  • Pracujemy nad odświeżenie środowiska analizy kodu. Teraz możesz włączyć nowe funkcje w toku w obszarze Narzędzia>Opcje>Edytor> tekstuC++>Eksperymentalna>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 zygzaki 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:

  • Tylko mój kod umożliwia teraz przechodzenie kodu z bibliotek systemowych lub innych firm C++ oprócz zwijania tych wywołań w oknie stosu wywołań. To zachowanie można kontrolować dla dowolnych bibliotek języka C++, gdy kod jest kompilowany za pomocą narzędzia /JMC, a ścieżki bibliotek innych niż użytkownik są określone w pliku natjmc. Jeśli biblioteka systemowa wywołuje metodę w kodzie użytkownika, debuger pomija cały kod systemowy i zatrzymuje się w pierwszym wierszu wywołania zwrotnego kodu użytkownika (Rysunek 10) .
Tylko mój kod
(Rysunek 10) Tylko mój kod
  • Punkty przerwania danych można teraz ustawiać w oknach Watch, Quickwatch, Autos i Locals, co pozwala na przerwanie działania w przypadku zmiany wartości w pamięci w ciągu kilku kliknięć krótkich.
  • 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 okno konsoli jest teraz domyślnie otwarte, gdy program kończy wykonywanie (podobnie jak w przypadku uruchamiania programu bez debugera). To zachowanie może zostać przełączone z powrotem w celu automatycznego zamknięcia konsoli w obszarze 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 język TypeScript 3.0. Aby uzyskać więcej informacji na temat tej wersji, zobacz ogłoszenie o wersji języka TypeScript 3.0.

Ulepszona obsługa Vue.js

Ulepszono obsługę biblioteki Vue.js, a w szczególności obsługę plików vue, znanych również jako "składniki pojedynczego pliku". Zapewnia to ulepszenia podczas edytowania bloków skryptów w plikach vue, w tym obsługę bloków skryptów utworzonych w języku TypeScript za pomocą atrybutu lang="ts" w elemecie script. (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 obciążenie Node.js jest zainstalowane, w oknie dialogowym Nowy projekt będą teraz dostępne szablony "Podstawowa aplikacja internetowa Node.jsVue.js Node.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 interfejsu ESLint

Ponownie zaimplementowaliśmy obsługę pakietu ESLint dla tej wersji. Program ESLint ma następujące ulepszenia i ulepszenia:

  • Zamiast tylko linting zapisanych plików, program Visual Studio będzie teraz lint pliki JavaScript podczas edycji, jak również.
  • Wyniki można zgłaszać dla wszystkich plików JS w projekcie, a nie tylko otwartych plików; Jeśli istnieją części projektu, które nie mają być linted, można teraz użyć pliku eslintignore do określania katalogów i plików, które powinny być ignorowane.
  • Program ESLint został zaktualizowany w celu domyślnego używania programu ESLint 4, ale jeśli projekt ma lokalną instalację programu ESLint, będzie używać tej wersji.

Element ESLint może zostać wyłączony globalnie w programie Visual Studio, usuwając zaznaczenie ustawienia Włącz ESLint w obszarze **Narzędzia > Opcje > edytora > tekstów Javascript/Linting języka Typescript > ** (Rysunek 12).

Opcje ESLint
(Rysunek 12) Opcje ESLint

Ulepszenia otwierania folderu dla Node.js

Istnieje wiele ulepszeń pracy z językami JavaScript i TypeScript w scenariuszu Otwórz folder po zainstalowaniu obciążenia "Node.js". Na przykład zarządzanie pakietami NPM, kompilowanie języka TypeScript, uruchamianie i debugowanie przy użyciu Node.exe, wykonywanie skryptów NPM i uruchamianie testów jednostkowych.

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

Ulepszenia wydajności edytora

W poprzednich wersjach wszystkie operacje usługi językowej JavaScript i TypeScript były obsługiwane przez pojedynczy proces Node.js. Może to spowodować opóźnienia edytora, jeśli polecenia wpływające na wpisywanie przez użytkownika (takie jak automatyczne formatowanie po nowym wierszu) zostały wysłane, gdy potencjalnie długotrwała operacja była już w trakcie (na przykład analizowanie kodu pod kątem błędów). Aby temu zapobiec, oddzielny proces jest teraz używany dla operacji, które mają wpływ na edycję najbardziej. Ten proces jest znacznie lżejszy w przypadku zasobów systemowych niż istniejący proces usługi językowej. Jeśli jednak chcesz wyłączyć nowy proces, zaznacz pole Wyłącz dedykowany proces składni w obszarze Narzędzia > Opcje > Edytor > tekstów JavaScript/TypeScript > Language Service.

Visual Studio Web Tools

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

Narzędzia do zarządzania kontenerami

Dodaliśmy nowe środowisko kontenera platformy Docker pojedynczego projektu dla projektów internetowych platformy ASP.NET Core. Uzupełnia to istniejące narzędzia kontenerów oparte na narzędziu docker Compose i zapewnia prostszy, łatwiejszy sposób tworzenia, debugowania i kompilowania kontenerów platformy Docker bezpośrednio z poziomu programu Visual Studio.

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

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

Możesz też włączyć obsługę platformy Docker dla istniejącego projektu za pomocą menu kontekstowego projektu w Eksploratorze rozwiązań (Rysunek 14) . Gdy to zrobisz, program Visual Studio utworzy pojedynczy plik Dockerfile w projekcie. Możesz wybrać system Windows lub Linux.

Dodawanie obsługi platformy Docker
(Rysunek 14) Dodawanie obsługi platformy Docker

Program Visual Studio dodaje również profil uruchamiania debugera (Rysunek 15) dla platformy Docker, aby można było debugować projekt podczas uruchamiania w kontenerze.

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

Jeśli masz rozwiązanie z wieloma projektami platformy Docker, domyślnie tylko jeden kontener jest uruchamiany, gdy zdecydujesz się uruchomić rozwiązanie. Jeśli chcesz uruchomić wiele kontenerów jednocześnie, możesz kliknąć prawym przyciskiem myszy rozwiązanie w Eksploratorze rozwiązań i wybrać pozycję Ustaw projekty startowe , a następnie ustawić listę rozwijaną Akcja na Start lub Rozpocznij bez debugowania dla wszystkich projektów, które chcesz uruchomić.

Po uruchomieniu konteneryzowanego projektu możesz kliknąć projekt prawym przyciskiem myszy i wybrać polecenie Kompiluj obraz platformy Docker , aby utworzyć obraz lokalnie, gdy wszystko będzie gotowe do wypchnięcia do usługi Azure Container Registry lub DockerHub.

Możesz również dodać istniejące funkcje oparte na platformie 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 ASP.NET Core w Eksploratorze rozwiązań, wybierz polecenie Dodaj > obsługę orkiestratora kontenerów, a następnie wybierz polecenie Docker Compose z menu rozwijanego.

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

Ulepszenia publikowania

Ta wersja zawiera następujące ulepszenia publikowania:

  • Podczas publikowania kontenera platformy Docker w rejestrze kontenerów można teraz dostosować tag obrazu. Możesz ręcznie dodać tag (wartość domyślna to "najnowsza") lub użyć tagu wygenerowanego automatycznie, aby upewnić się, że każdy tag jest unikatowy.
  • Podczas tworzenia nowej usługi Azure App Service można również skonfigurować usługę Application Insights w celu automatycznego zbierania danych telemetrycznych. Jeśli wybierzesz region, który ma również usługę Application Insights, jest on domyślnie włączony. Jeśli wybierzesz region, który nie zawiera jeszcze usługi Application Insights, możesz ręcznie określić inny region dla zasobu usługi Application Insights z listy rozwijanej.
  • Podczas publikowania projektów usługi Azure Functions możesz zdecydować się na opublikowanie przy użyciu nowej funkcji Uruchom z pliku Zip .

Visual Studio Tools for Xamarin

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

  • Dodaliśmy obsługę środowiska Xcode 9.4.
  • Podczas tworzenia nowego projektu platformy Xamarin.Forms domyślna opcja udostępniania kodu to teraz .NET Standard. Opcja udostępnionego projektu jest nadal dostępna.
  • Dodaliśmy ulepszenia kompilacji przyrostowej systemu Android. Platforma Xamarin.Android używa plików wygenerowanych w katalogu danych wyjściowych pośrednich w celu uzyskania kompilacji przyrostowych, które są szybsze niż pełne kompilacje. Wcześniej, jeśli zmieniono strukturę docelową projektu, spowoduje to unieważnienie plików i utworzenie pełnej kompilacji podczas następnego uruchomienia. W tej wersji zachowujemy pliki w folderach dla poszczególnych struktur, dzięki czemu można przełączać się między różnymi platformami docelowymi i nadal korzystać z kompilacji przyrostowych. Czyszczenie projektu umożliwia odzyskanie miejsca na dysku używanego przez zachowane pliki.
  • Dodaliśmy minimalną obsługę projektów powiązań platformy Xamarin.Mac w programie Visual Studio 2017. Dzięki temu program Visual Studio może ładować i rozpoznawać projekty powiązań platformy Xamarin.Mac jako obsługiwane. Można również tworzyć projekty powiązań platformy Xamarin.Mac. Jednak proces kompilacji jest wykonywany lokalnie bez użycia natywnego łańcucha narzędzi dla komputerów Mac, więc wygenerowanych zestawów IL nie można używać do uruchamiania ani debugowania w aplikacjach.

obsługa emulatora systemu Android Hyper-V

W tej wersji dodano obsługę emulatora systemu Google Android zgodnego z funkcją Hyper-V podczas uruchamiania w aktualizacji systemu Windows 10 z kwietnia 2018 r. (Rysunek 17) . Dzięki temu można używać emulatora systemu Android firmy Google obok innych technologii opartych na Hyper-V, w tym Hyper-V maszyn wirtualnych, narzędzi platformy Docker, emulatora urządzenia HoloLens i nie tylko. Deweloperzy aplikacji mobilnych korzystający z Hyper-V mają teraz dostęp do szybkiego emulatora systemu Android, który zawsze obsługuje najnowsze interfejsy API systemu Android, współpracuje z usługami Google Play i obsługuje wszystkie funkcje emulatora systemu Android, w tym aparat, 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 dla platformy Xamarin.Android. Najważniejsze elementy to:

  • Wprowadzono edytor widoku podzielonego, który umożliwia 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 podzielonego platformy Xamarin.Android
  • Ulepszone środowisko funkcji IntelliSense i niezawodność kontrolek niestandardowych.
  • Przykładowa obsługa danych dla podanych wartości systemu.

Podgląd zestawu narzędzi Xamarin.Forms

Program podglądu zestawu narzędzi Xamarin.Forms obsługuje teraz przybornik w przypadku korzystania z zestawu narzędzi Xamarin.Forms w wersji 3.1.0.583944 lub nowszej. Kontrolki platformy Xamarin.Forms będą wyświetlane w przyborniku, aby były bardziej wykrywalne dla tych nowych elementów zestawu narzędzi. Możesz również przeciągać i upuszczać kontrolkę do edytora kodu XAML, aby dodać kontrolkę do strony. Program podglądu zestawu narzędzi Xamarin.Forms jest teraz częścią edytora XAML. Możesz go otworzyć i zamknąć za pomocą ikony rozwijania na krawędzi okienka edytora.

Python

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

  • Funkcja IntelliSense języka Python używa teraz definicji typehed w celu zapewnienia bogatszych wyników dla bibliotek, w których automatyczne uzupełnianie nie może być wnioskowane przez analizę statyczną.
  • Eksperymentalny debuger, po raz pierwszy ogłoszony w wersjach zapoznawczych 15.7, jest teraz domyślnym aparatem debugowania używanym dla języka Python, który zapewnia szybsze i bardziej niezawodne debugowanie kodu w języku Python.
  • Dodaliśmy obsługę języka Python 3.7, w tym poprawki umożliwiające dołączanie debugowania, profilowanie i funkcje debugowania w trybie mieszanym (między językami).
  • Aby uzyskać więcej informacji na temat powyższych funkcji, zapoznaj się z wpisem w blogu python in Visual Studio 2017 version 15.8 (Język Python w programie Visual Studio 2017 w wersji 15.8 ).

Migrowanie lokalnych ustawień funkcji platformy Azure

Okno dialogowe "Ustawienia aplikacji zarządzanej" dostępne na stronie podsumowania publikowania wyświetla teraz wartości z pliku local.settings.json i umożliwia migrowanie wartości do zdalnej aplikacji funkcji platformy Azure hostowanej na platformie Azure.

Connected Services

Teraz można skonfigurować ciągłe dostarczanie dla funkcji platformy Azure bezpośrednio z poziomu programu Visual Studio 2017 pod kątem rozwiązań za pomocą projektów funkcji platformy Azure.

Ulepszenie Eksploratora testów

Eksplorator testów wyświetla teraz bardziej informacyjne okienko podsumowania stanu testu (dolne okienko Eksploratora testów), gdy wybrano jedno z grup w widoku hierarchii. W okienku jest teraz wyświetlana liczba testów, które zakończyły się niepowodzeniem, zakończyły się powodzeniem lub nie zostały uruchomione w tym grupowaniu.

Nowe funkcje rozszerzalności

Protokół serwera językowego

Program Visual Studio ma teraz natywną obsługę protokołu Language Server Protocol. Autorzy rozszerzeń mogą tworzyć rozszerzenia komunikujące się z istniejącymi serwerami językowymi w celu dodania dodatkowej obsługi języka do programu Visual Studio. Użytkownicy rozszerzeń mogą zainstalować te rozszerzenia, aby rozpocząć korzystanie z ulubionego języka w programie Visual Studio, na przykład Rust.

Szablon AsyncPackage

Autorzy rozszerzeń mogą teraz używać szablonów elementów do tworzenia AsyncPackages w celu zoptymalizowania wydajności rozszerzenia. Przeczytaj więcej na temat pakietu AsyncPackages.

Pakiety rozszerzeń

Łatwe udostępnianie ulubionego zestawu rozszerzeń lub konfigurowanie nowej instalacji programu Visual Studio ze wszystkimi rozszerzeniami przy użyciu pakietu rozszerzeń. Pakiety rozszerzeń umożliwiają tworzenie listy rozszerzeń, pakowanie ich w rozszerzeniu i szybkie instalowanie tych rozszerzeń zbiorczo.

Publikowanie rozszerzenia wiersza polecenia

Opublikuj rozszerzenia 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 obejmują:

  • Dodano szablony NUnit
  • Dodano obsługę podpisanych narzędzi globalnych
  • Ulepszony tekst pomocy w celu uzyskania lepszej jasności

32 problemy zostały zamknięte w interfejsie wiersza polecenia platformy .NET Core.
20 problemów zostało zamkniętych w zestawie .NET Core SDK.

Kontrola źródła

W przypadku projektów platformy .NET Core pliki dodane bezpośrednio do projektu za pośrednictwem Eksploratora plików będą teraz wyświetlać prawidłowe ikony śledzenia git i 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ść: wszystkie projekty testowe muszą zawierać odwołanie NuGet do adaptera testowego platformy .NET w pliku csproj. 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. Odkrywanie lub wykonywanie testów może nie działać w tym projekcie. Zaleca się odwołanie do kart testowych NuGet w każdym projekcie testowym w rozwiązaniu.
  • Platformy testowe .NET udostępniają swoje karty w pakietach NuGet i odchodzą od rozszerzeń programu Visual Studio. Obsługa kart testowych platformy .NET dostarczanych za pośrednictwem rozszerzeń jest przestarzała, ale nadal jest obsługiwana. Oznacza to, że w obszarze Narzędzia > Opcje > testowe są dostępne dwie nowe opcje.
    • Pierwsza opcja umożliwia programowi Visual Studio używanie tylko kart testowych, które znajduje w folderze zestawu testowego (wypełnionym przez odwołanie NuGet adaptera testowego) lub określonym w pliku runsettings.
    • Druga opcja umożliwia programowi Visual Studio "powrót" do starego zachowania i wyszukiwanie rozszerzeń adaptera testowego dla projektów, które nie mają odwołania NuGet adaptera testowego. Obie opcje są domyślnie sprawdzane, więc żadne domyślne zachowanie nie zmieni się w tej wersji.
  • Uwaga: Non-.NET adaptery testowe nie mają wpływu na tę zmianę.

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

W przypadku ASP.NET projektów programu .NET Framework przeznaczonych dla programu .NET Framework 4.7.1 lub nowszego można teraz otwierać i przechowywać wpisy tajne, których nie chcesz przechowywać w kodzie źródłowym w usersecrets.xml, klikając projekt prawym przyciskiem myszy i wybierając pozycję "Zarządzane wpisy tajne użytkownika".

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

Jeśli przywołyżony pakiet kompilatora .NET jest nieaktualny w projekcie programu .NET Framework ASP.NET, program Visual Studio wyświetli monit o uaktualnienie pakietu po otwarciu projektu w celu zwiększenia wydajności kompilacji.

.NET Framework 4.7.2

Program Visual Studio 2017 w wersji 15.8 oferuje teraz narzędzia programistyczne .NET Framework 4.7.2 do wszystkich obsługiwanych platform z dołączonym środowiskiem uruchomieniowym 4.7.2. Program .NET Framework 4.7.2 oferuje kilka nowych funkcji i ulepszeń, a także liczne poprawki niezawodności, stabilności, zabezpieczeń i wydajności.

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

Opóźnij ładowanie pakietów

Program Visual Studio opóźnia teraz ładowanie pakietów asynchronicznych skonfigurowanych do automatycznego ładowania do momentu pełnego uruchomienia środowiska IDE programu Visual Studio i załadowania rozwiązania. Ta zmiana nie ma wpływu na pakiety automatycznie ładowane synchronicznie. Użytkownicy mogą przeglądać Centrum stanu zadań w lewym dolnym rogu paska stanu, aby monitorować postęp. Autorzy rozszerzeń, którzy tworzą pakiety asynchroniczne, powinni przetestować ich rozszerzenie. Aby uzyskać więcej informacji, zobacz Poprawianie czasu odpowiedzi scenariuszy krytycznych przez aktualizowanie zachowania automatycznego ładowania 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 dotycząca ujawniania informacji na platformie .NET Core

Luka w zabezpieczeniach obejścia funkcji zabezpieczeń istnieje na platformie .NET Core, gdy informacje o uwierzytelnianiu HTTP są przypadkowo uwidocznione w żądaniu wychodzącym, które napotyka przekierowanie HTTP. Osoba atakująca, która pomyślnie wykorzystała tę lukę w zabezpieczeniach, może użyć tych informacji w celu dalszego naruszenia zabezpieczeń aplikacji internetowej. Aktualizacja zabezpieczeń usuwa tę lukę w zabezpieczeniach, poprawiając sposób obsługi przekierowań HTTP przez aplikacje platformy .NET Core.

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

CVE-2018-8409 Luka w zabezpieczeniach dotycząca odmowy usługi platformy .NET Core

Luka w zabezpieczeniach typu "odmowa usługi" istnieje na platformie .NET Core 2.1, gdy usługa System.IO.Pipelines nieprawidłowo obsługuje żądania. Osoba atakująca, która pomyślnie wykorzystała tę lukę w zabezpieczeniach, może spowodować atak typu "odmowa usługi" na aplikację korzystającą z elementu System.IO.Pipelines. Lukę w zabezpieczeniach można wykorzystać zdalnie bez uwierzytelniania. Zdalny nieuwierzytelniony atakujący może wykorzystać tę lukę w zabezpieczeniach, dostarczając specjalnie spreparowane żądania do aplikacji.

CVE-2018-8409 ASP.NET luka w zabezpieczeniach dotycząca odmowy usługi

W ASP.NET Core 2.1 istnieje luka w zabezpieczeniach typu "odmowa usługi", która nieprawidłowo obsługuje żądania internetowe. 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ę w zabezpieczeniach, udostępniając specjalnie spreparowane żądania internetowe do aplikacji ASP.NET Core.

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

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

Luka w zabezpieczeniach dotycząca podniesienia uprawnień istnieje w usłudze visual studio, co może prowadzić do uprawnień systemowych przez użytkownika niebędącego administratorem podczas zapisywania plików. Osoba atakująca, która skorzystała z tego problemu, może zapisywać pliki jako system, mając tylko dostęp na poziomie użytkownika. Ta aktualizacja zabezpieczeń rozwiązuje ten problem, personifikując bieżącego użytkownika w celu zweryfikowania 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 przez otwarcie specjalnie spreparowanego projektu lub pliku zasobu. Aktualizacja zabezpieczeń usuwa tę lukę w zabezpieczeniach, poprawiając sposób sprawdzania znaczników źródłowego pliku przez program Visual Studio.

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

Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu istnieje w oprogramowaniu .NET, które 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 narzutu źródłowego pliku przez platformę .NET.

CVE-2018-8232 Luka w zabezpieczeniach dotycząca naruszenia naruszenia w programie Microsoft Macro Assembler

Luka w zabezpieczeniach związana z nieprawidłowym sprawdzaniem poprawności kodu przez program Microsoft Macro Assembler. Aktualizacja zabezpieczeń usuwa tę lukę w zabezpieczeniach, upewniając się, że program Microsoft Macro Assembler prawidłowo weryfikuje logikę kodu.

CVE-2018-8171 luka w zabezpieczeniach dotycząca obejścia funkcji zabezpieczeń podstawowego ASP.NET

Luka w zabezpieczeniach dotycząca obejścia funkcji zabezpieczeń ASP.NET Core istnieje, gdy liczba nieprawidłowych prób logowania nie jest weryfikowana, co może prowadzić do próby nieskończonej próby uwierzytelnienia przez osobę atakującą. Aktualizacja usuwa tę lukę w zabezpieczeniach, sprawdzając liczbę nieprawidłowych 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 luki w zabezpieczeniach usługi Git

Usunęliśmy lukę w zabezpieczeniach w usłudze Git, która została ujawniona przez społeczność usługi Git. Luka w zabezpieczeniach może prowadzić do dowolnego wykonania 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 typu "odmowa usługi" platformy .NET Core

  • Firma Microsoft publikuje ten poradnik dotyczący zabezpieczeń, aby udostępnić informacje o lukach w zabezpieczeniach w programach .NET Core i .NET Native w wersji 2.0. Ten poradnik zawiera również wskazówki dotyczące tego, co deweloperzy mogą zrobić, aby zaktualizować aplikacje w celu usunięcia tej luki w zabezpieczeniach.
  • Firma Microsoft zdaje sobie sprawę z luki w zabezpieczeniach typu "odmowa usługi", która istnieje, gdy programy .NET Framework i .NET Core nieprawidłowo przetwarzają dokumenty XML. Osoba atakująca, która pomyślnie wykorzystała tę lukę w zabezpieczeniach, może spowodować odmowę usługi względem aplikacji natywnej .NET Framework, .NET Core lub .NET.
  • Aktualizacja usuwa tę lukę w zabezpieczeniach, poprawiając sposób obsługi przetwarzania dokumentów XML przez programy .NET Framework, .NET Core i .NET natywne.
  • Jeśli aplikacja jest aplikacją ASP.NET Core, deweloperzy powinni również zaktualizować aplikację ASP.NET Core 2.0.8.

Ikona informacji o wersjiVisual Studio 2017 w wersji 15.8.1

wydany 17 sierpnia 2018 r.

Najważniejsze problemy rozwiązane w wersji 15.8.1

Są to problemy rozwiązane w wersji 15.8.1:

  • Rozwiązano problem polegający na tym, że program Visual Studio był nieoczekiwanie zamykany po zamknięciu okna przeglądarki podczas debugowania projektu internetowego.

Ikona informacji o wersjiVisual Studio 2017 w wersji 15.8.2

wydany 28 sierpnia 2018 r.

Najważniejsze problemy rozwiązane w wersji 15.8.2

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


Ikona informacji o wersjiVisual Studio 2017 w wersji 15.8.3

wydany 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

wydany 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 związane z bezpieczeństwem


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óły nowości w wersji 15.8.5

Visual Studio Tools for Xamarin

Narzędzia Visual Studio Tools for Xamarin obsługują teraz program Xcode 10, który umożliwia tworzenie i debugowanie aplikacji dla systemu iOS 12, tvOS 12 i watchOS 5. Zobacz , jak przygotować się do systemu 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óły nowości 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 dla obciążenia programistycznego platformy uniwersalnej systemu Windows. Ten zestaw SDK można dodać 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

wydany 10 października 2018 r.

Co nowego w wersji 15.8.7

Azure DevOps

Usługa Visual Studio Team Services jest teraz usługą Azure DevOps! Ta nowa marka zostanie wyświetlona w programie Team Explorer i w odwołaniach w programie Visual Studio.

Powiadomienia związane z bezpieczeństwem

CVE-2018-8292 Luka w zabezpieczeniach dotycząca ujawniania informacji na platformie .NET Core


Ikona informacji o wersjiVisual Studio 2017 w wersji 15.8.8

wydany 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

wydany 2 listopada 2018 r.

Najważniejsze problemy rozwiązane w wersji 15.8.9

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


Znane problemy

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

Znane problemy z programem Visual Studio 2017


Historia informacji o wydaniu 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.