Visual Studio Icon Informacje o wersji 15.8 programu Visual Studio 2017Visual Studio 2017 version 15.8 Release Notes


| Społeczność deweloperów | Wymagania systemowe | Zgodność | Kod możliwy do rozpowszechniania | Postanowienia licencyjne | Blogi | Znane problemy || Developer Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Known Issues |


Aby pobrać program Visual Studio 2017, kliknij przycisk pobierania i po wyświetleniu monitu zaloguj się za pomocą swojej subskrypcji programu Visual Studio.To download Visual Studio 2017, click the download button and log in with your Visual Studio Subscription when prompted. Jeśli nie masz subskrypcji programu Visual Studio, możesz ją bezpłatnie utworzyć, klikając pozycję „Utwórz nowe konto Microsoft” na stronie logowania.If you don’t have a Visual Studio Subscription, you can create one for free by clicking on “Create a new Microsoft account” on the login page. Zalecamy używanie programu Visual Studio 2019, aby mieć dostęp do najnowszych funkcji i poprawek błędów.We recommend using Visual Studio 2019 to get the latest features and bug fixes.

Odwiedź stronę starszej wersji, aby pobrać inne produkty Visual Studio 2017.Visit the older version page to download other Visual Studio 2017 products.


Co nowego w wersji 15.8What's New in 15.8

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.The Visual Studio Blog is the official source of product insight from the Visual Studio Engineering Team. Szczegółowe informacje na temat wydań programu Visual Studio 2017 w wersji 15.8 można znaleźć w następujących wpisach:You can find in-depth information about Visual Studio 2017 version 15.8 releases in the following posts:

Wydania wersji 15.8 programu Visual Studio 2017Visual Studio 2017 version 15.8 Releases

Ważne

Powiadomienie o biuletynie zabezpieczeń programu Visual Studio 2017 w wersji 15.8Visual Studio 2017 version 15.8 Security Advisory Notices

Podsumowanie istotnych nowych funkcji w wersji 15.8Summary of Notable New Features in 15.8

Najważniejsze problemy rozwiązane w wersji 15.8Top Issues Fixed in 15.8

Są to problemy zgłaszane przez klientów rozwiązane w wersji 15.8:These are the customer-reported issues addressed in 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.See all customer-reported issues fixed in Visual Studio 2017 version 15.8.

The Developer Community Portal


Szczegóły nowości w wersji 15.8Details of What's New in 15.8

Release Notes Icon Visual Studio 2017, wersja 15.8.0Visual Studio 2017 version 15.8.0

wydana 14 sierpnia 2018 r.released on August 14, 2018

Nowe funkcje w wersji 15.8New Features in 15.8

InstalowanieInstall

Masz teraz możliwość pobierania wszystkich plików instalacyjnych przed rozpoczęciem instalacji.You now have the option to download all installation files before starting your installation.

  • Aby użyć tej nowej opcji, wybierz pozycję „Pobierz wszystko, a następnie zainstaluj” w Instalatorze (Rysunek 1) .To use this new option, select the "Download all, then install" option in the installer (Figure 1). Zalecamy skorzystanie z tej opcji w przypadku posiadania wolniejszego połączenia internetowego.We suggest this option if you have a slower internet connection.
  • Domyślną opcją pozostaje „Zainstaluj podczas pobierania”, w przypadku której pobieranie i instalowanie zachodzi równolegle.The default option remains "Install while downloading", which downloads and installs in parallel.
Download Otion
(Rysunek 1) Opcja pobierania(Figure 1) Download Option

WydajnośćPerformance

Ta wersja zawiera następujące ulepszenia dotyczące wydajności:This release contains the following performance improvements:

  • 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.Branch switching for C#, VB, and C++ projects is much faster for large solutions since solution reload is no longer required.
  • 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.We reduced the time to unload and reload a small set of C# and VB projects in large solutions from minutes to several seconds.
  • 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.We added an option to disable reopening documents that were open in the previous session, as reopening certain types of files or designers can delay solution load.
    • Tę opcję można przełączyć w obszarze Narzędzia > Opcje > Projekty > Rozwiązania > Ogólne.Toggle this option in Tools > Options > Projects > Solutions > General.

Wydajność testowaniaTest Performance

Znacznie zwiększyliśmy wydajności podczas wykonywania kilku testów w dużym rozwiązaniu z użyciem wielu projektów testowych.We significantly improved performance when running a few tests in a large solution with multiple test projects. W naszych laboratoriach w przypadku rozwiązania mającego ponad 10 000 testów MSTest pojedynczy test był wykonywany do 82% szybciej!In our labs, a solution with over 10,000 MSTests executed a single test up to 82% faster!

Zwiększenie wydajności w języku Visual BasicVisual Basic Performance Improvement

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ą.Visual Basic now provides a significant performance improvement when using the pattern CInt(Fix(number)) to convert from non-integer types to integers.

Profilowanie wydajnościPerformance Profiling

Ta wersja zawiera następujące rozszerzenia dotyczące profilowania wydajności:This release contains the following performance profiling enhancements:

  • Dodaliśmy możliwość uruchomienia profilowania w stanie wstrzymania:We added the capability to start profiling in a paused state:

    • Narzędzie Użycie procesora CPU w profilerze wydajności (ALT-F2) można teraz uruchomić w stanie wstrzymania (Rysunek 2) .The CPU Usage tool in the Performance Profiler (ALT-F2) can now be started in a paused state (Figure 2). Może to być przydatne podczas czekania na odpowiedni scenariusz do przebadania użycia procesora CPU.This can be useful while waiting for a scenario worthy of a CPU Usage investigation. 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.If CPU usage collection is disabled at startup, the Performance Profiler will not collect any CPU usage sample stack data until it is specifically enabled. Dzięki temu ilość danych wynikowych do zbierania i analizowania jest znacznie mniejsza, co przyczynia się do poprawy wydajności badania.This results in a smaller amount of data to collect and analyze, thus making your performance investigations more efficient.

    • 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.To start a session with CPU Usage sample collection disabled, click the gear icon next to CPU Usage on the Performance Profiler launch page. 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.On the CPU Usage property page, uncheck Enable CPU Profiling (Sampling) and click OK to save the settings.

      CPU Usage Tool settings page
      (Rysunek 2) Ustawienia narzędzia Użycie procesora CPU(Figure 2) CPU Usage Tool Settings
    • 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.Once you start the target application (click Start on the Performance Profiler launch page), you will see the CPU utilization graph (Figure 3) which allows you to control CPU profiling. 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.To enable CPU usage sample stack data collection, select Enable CPU profiling in the middle of the view, or click Record CPU Profile just below the CPU utilization graph. Pozycję Rejestruj profil procesora CPU możesz klikać dowolną liczbę razy, aby włączać/wyłączać zbieranie przykładowych danych.You can click Record CPU Profile to enable/disable sample data collection as many times as you like. Kolor wykresu wykorzystania procesora CPU zmienia się, aby wskazać, czy zbieranie przykładowych danych jest w danym momencie włączone, czy wyłączone.The CPU utilization graph color changes to indicate whether sample collection is enabled/disabled at that point in time.

      CPU Usage Tool monitoring view
      (Rysunek 3) Wykres wykorzystania procesora CPU(Figure 3) CPU Usage Utilization Graph
  • Dodaliśmy narzędzie Śledzenie przydzielania obiektów .NET:We added a .NET Object Allocation Tracking tool:

    • Śledzenie przydzielania obiektów .NET to jeszcze jedno narzędzie dostępne z poziomu profilera wydajności.The .NET Object Allocation Tracking Tool joins the family of tools available from the Performance Profiler. 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.Invoking this tool for a performance profiler session initiates the collection of a stack trace for every .NET object allocation that occurs in the target application. 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.This stack data is analyzed along with object type and size information to reveal details of the memory activity of your application. Dzięki temu możesz szybko ustalić wzorce alokacji w kodzie oraz zidentyfikować anomalie.You can quickly determine the allocation patterns in your code and identify anomalies. 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.In addition, for Garbage Collection (GC) events, you can easily determine which objects were collected and retained and quickly identify object types that dominate the memory usage of the application.
    • Jest to szczególnie przydatne dla autorów interfejsu API, ponieważ umożliwia zminimalizowanie alokacji.This is especially useful for API writers to help minimize allocations. 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.Many applications will overrun the buffer limits involved in the diagnostics data collection, but small test applications exercising an API's key scenarios can be diagnosed quite well. Podczas wykonywania aplikacji testowej profiler wydajności wyświetla wykres liniowy aktywnych obiektów (licznik) oraz wykres słupkowy różnicy obiektu (zmiany w %).While your test application is executing, the Performance Profiler displays a line graph of Live Objects (count), as well as an Object Delta (% change) bar graph.
    • 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.To use the .NET Object Allocation Tracking Tool, display the Performance Profiler launch page (Figure 4), select a target to profile (the default target is the startup project in the solution), check .NET Object Allocation Tracking under Available Tools, then click Start.
    Performance Profiler launch page
    (Rysunek 4) Strona uruchamiania profilera wydajności(Figure 4) Performance Profiler Launch Page

Profilowanie wydajności (użycie procesora CPU)Performance Profiling (CPU Usage)

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):This release contains the following improvements to the CPU Usage tool of the Performance Profiler (available through ALT-F2):

  • W widoku drzewa wywołań domyślnie wyświetlane jest teraz asynchroniczne wykonanie według stosu wywołań logicznych.The Call Tree view now displays asynchronous execution by logical call stack by default. 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.You can turn off this behavior by unchecking the option Stitch Async Code in the Filter dropdown of the CPU Usage main view.
  • 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.We added a Modules/Functions view that displays performance information by module (dll) and by function within a 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.One can display the Modules/Functions view from the context menu available when selecting a function in the CPU Usage main view, or from the View dropdown in the Call Tree or Caller/Callee views.
  • W widoku głównym narzędzia Użycie procesora CPU do wykresu użycia procesora CPU dodano opcję „oznaczenia wystąpienia”.Instance indication has been added to the CPU Usage graph in the CPU Usage tool's main view. 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.You can view the instances when a function is executing (for instance, on the stack) by double-clicking a function listed in any of the CPU Usage views.

ProduktywnośćProductivity

Ta wersja zawiera następujące ulepszenia dotyczące produktywności:This release contains the following productivity enhancements:

  • 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).You can perform additional code cleanup with Format Document (Ctrl + K, D or Ctrl + E, D) for C# development. Skonfiguruj oczyszczanie, przechodząc do pozycji Narzędzia > Opcje > Edytor tekstów > C# > Styl kodu > Formatowanie > Ogólne.Configure cleanup by going to Tools > Options > Text Editor > C# > Code Style > Formatting > General.
  • Dodaliśmy więcej refaktoryzacji i szybkich akcji dostępnych przy użyciu klawiszy Ctrl + .We added more refactorings and quick actions using Ctrl + . lub Alt + Enter:or Alt + Enter:
    • Funkcja Odwróć instrukcję If umożliwia odwrócenie logiki w instrukcjach if-else.Invert If enables you to invert your logic in if-else statements. Umieść kursor w słowie kluczowym if, aby wyzwolić tę refaktoryzację.Place your cursor in the if keyword to trigger this refactoring.
    • 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.Add parameter from method callsite allows you to add a parameter to a method by adding an argument to a method callsite and triggering Quick Actions and Refactorings.
    • Funkcja Usuń niepotrzebne nawiasy usuwa nawiasy wokół operatorów binarnych, które nie są istotne dla kompilacji.Remove unnecessary parentheses removes parentheses around binary operators that are not essential for compilation. Tę regułę stylu można skonfigurować, przechodząc do pozycji Narzędzia > Opcje > Edytor tekstów > C# > Styl kodu > Ogólne lub używając pliku editorconfig:You can configure this style rule through Tools > Options > Text Editor > C# > Code Style > General or .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
    • Funkcja Użyj trójstanowych instrukcji warunkowych i instrukcji powrotu może również zostać skonfigurowana jako reguła stylu w obszarze Narzędzia > Opcje > ... lub za pomocą pliku editorconfig:Use ternary conditionals in assignments and return statements can also be configured as a style rule in Tools > Options > ... or through .editorconfig:
      • dotnet_style_prefer_conditional_expression_over_assignment
      • dotnet_style_prefer_conditional_expression_over_return
  • Dodaliśmy nowe polecenia i ulepszenia w oknie Przejdź do wszystkich:We added new commands and improvements to the Go to All window:
    • Funkcja Przejdź do otaczającego bloku (Ctrl + Alt + Strzałka w górę) pozwala na szybkie przechodzenie do początku otaczającego bloku kodu.Go to Enclosing Block (Ctrl + Alt + UpArrow) allows you to quickly navigate up to the beginning of the enclosing code block.
    • Funkcja Przejdź do następnego/poprzedniego problemu (Alt + PgUp/PgDn) pozwala przejść do następnego/poprzedniego problemu (błędu, zygzaka, żarówki).Go to Next/Previous Issue (Alt + PgUp/PgDn) allows you to skip to the next/previous issue (error, squiggle, lightbulb).
    • Funkcja Przejdź do elementu członkowskiego (Ctrl + T, M) ma teraz zakres domyślnie ograniczony do pliku.Go to Member (Ctrl + T, M) is now scoped to the file by default. 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).You can change the default back to solution by toggling the Scope to Current Document (Ctrl + Alt + C).
  • Dzięki obsłudze wielu kursorów możesz teraz tworzyć punkty wstawiania i zaznaczenia w wielu dowolnych miejscach w pliku.You can now create insertion points and selections at multiple, arbitrary locations in a file with multiple caret support. Umożliwia to jednoczesne dodawanie, edytowanie i usuwanie tekstu w wielu miejscach.This allows you to add, edit, or delete text in multiple places simultaneously.
    • Kursory można wstawiać za pomocą kombinacji Ctrl + Alt + kliknięcie lewym przyciskiem myszy.Insert carets with Ctrl + Alt + LeftMouseClick.
    • Naciskając klawisze Shift + Alt + Ins, możesz dodawać zaznaczenie i kursor w następnej lokalizacji zgodnej z bieżącym zaznaczeniem.Add a selection and caret at next location that matches current selection with Shift + Alt + Ins.
    • Pełną listę akcji można wyświetlić, wybierając pozycję Edytuj > Wiele kursorów.See Edit > Multiple Carets for full list of actions.
  • Dostęp do kontekstowego menu nawigacji można uzyskać, naciskając klawisze Alt + ` .Access a contextual navigation menu with Alt + `.
  • Zachowaj zgodność swoich powiązań klawiszy z dwoma nowymi profilami klawiatury: Visual Studio Code i ReSharper (Visual Studio) .Keep your keybindings consistent with two new keyboard profiles: Visual Studio Code and 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.You can find these schemes under Tools > Options > Environment > Keyboard and the top drop-down menu.

DebugowanieDebugging

Ta wersja zawiera następujące ulepszenia dotyczące debugowania:This release contains the following debugging enhancements:

  • 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) .When you have more than one instance of Visual Studio 2017 installed, you can now select which instance to deploy your extension to when debugging (Figure 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.That way you can, for example, develop in the Visual Studio release channel while debugging in the preview channel.

    Select your debug instance
    (Rysunek 5) Wybieranie wystąpienia do debugowania(Figure 5) Select Debug Instance
  • Teraz można dołączyć narzędzie Snapshot Debugger bezpośrednio ze strony podsumowania publikowania (Rysunek 6) .You can now attach the Snapshot Debugger directly from the Publish summary page (Figure 6).

    Attach Snapshot Debugger from Publish Summary page
    (Rysunek 6) Dołączanie narzędzia Snapshot Debugger z poziomu podsumowania publikowania(Figure 6) Attach Snapshot Debugger from Publish Summary
  • Teraz obsługujemy wyświetlanie zadań zarządzanych za pośrednictwem okna Zadania podczas debugowania minizrzutów ze stertą.We now support viewing Managed Tasks through the Tasks window while debugging minidumps with heap.

Narzędzia dla deweloperów platformy uniwersalnej systemu WindowsTools for Universal Windows Platform Developers

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.We made many important improvements to the XAML designer for projects targeting the Universal Windows Platform with a target platform version of the Windows 10 Fall Creators Update (build 16299) or later. Te ulepszenia są następujące:These improvements include:

  • Kolekcje można teraz edytować w obszarze Inspektor właściwości.You can now edit collections in the Property Inspector.
  • 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.The designer now allows Templates and Styles to be edited, including when the definitions for those entities are defined in other documents.
  • 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ć.Properties of type IconElement (such as Icon in an AppBarButton) now have a custom editor in the Property Inspector making these properties easier to set.
  • Projektant, edytor oraz funkcja Edytuj i Kontynuuj powinny teraz prawidłowo współpracować z atrybutem x:DefaultBindMode.The designer, editor, and Edit and Continue should all now work correctly with x:DefaultBindMode.
  • Środowisko Visual State Manager w programie Blend obsługuje teraz wyzwalacz AdaptiveTrigger.The Visual State Manager experience in Blend now supports AdaptiveTrigger.

Narzędzia języka F# 4.5 i F# Tools dla programu Visual StudioF# 4.5 and F# Tools for Visual Studio

W tym wydaniu wprowadziliśmy język F# języka w wersji 4.5.We introduced the F# language version 4.5 with this release. Odpowiada to także nowej rodzinie produktów 4.5.x w bibliotece FSharp.Core (podstawowa biblioteka języka F#).This also corresponds with the new 4.5.x family of FSharp.Core (the F# core library). Specyfikacje każdej z tych zmian można znaleźć w repozytorium dokumentów RFC języka F#.You can read the specs for each of these changes in the F# RFC repository. W tej wersji oferujemy również wiele ulepszeń narzędzi języka F# dla programu Visual Studio.There are also many improvements to F# tools for Visual Studio with this release.

F# 4.5F# 4.5

Poniżej przedstawiono niektóre najważniejsze funkcje języka F# w wersji 4.5:Here are the some of the highlights with the F# language version 4.5:

Obsługa funkcji Span<'T>Span<'T> support

Zaimplementowaliśmy funkcję Span<'T> i powiązane funkcje, aby umożliwić skuteczne wykorzystanie i produkcję interfejsów API przy użyciu konstrukcji podobnych do Span, Memory i ref w języku F#.We implemented Span<'T> and related features so that effective consumption and production of APIs using Span, Memory, and ref-like constructs are possible with F#. Funkcje to m.in.:The features for this include:

  • Nowy typ voidptr.New voidptr type.
  • Nowe funkcje NativePtr.ofVoidPtr i NativePtr.toVoidPtr w bibliotece FSharp.Core.New NativePtr.ofVoidPtr and NativePtr.toVoidPtr functions in FSharp.Core.
  • Nowe typy inref<'T> i outref<'T>, które są odpowiednio typami byref tylko do odczytu i typami byref tylko do zapisu.New types inref<'T> and outref<'T>, which are read-only byrefs and write-only byrefs, respectively. Odpowiada to typom in ref i out ref w języku C#.This correspond to in ref and out ref in C#.
  • Możliwość tworzenia struktur ByRefLike (takich jak Span i ReadOnlySpan).The ability to produce ByRefLike structs (such as Span and ReadOnlySpan).
  • Możliwość tworzenia struktur IsReadOnly.The ability to produce IsReadOnly structs.
  • Niejawne wyłuskania funkcji byref- i inref-return z metod.Implicit dereference of byref- and inref-returns from methods.
  • Możliwość tworzenia elementów członkowskich rozszerzeń w elemencie byref/inref/outref.The ability to produce extension members on byref/inref/outref.

Ten zestaw funkcji usuwa usterkę w projekcie początkowym funkcji byref-return w języku F# 4.1, która polegała na tym, że funkcje, metody i właściwości zwracające typy byref nie wyłuskiwały jawnie wartości funkcji return.This feature set fixes a bug in the initial design of byref-returns in F# 4.1, where functions, methods, and properties returning byref's were not implicitly dereferencing the return value. Wprowadzamy tę zmianę, aby funkcja działa zgodnie z zasadami obsługi funkcji ref-return w języku C#.We make this change to bring the feature in-line with how C# handles ref-returns. Jeśli adnotacja typu wskazuje, że jest obecnie używane niejawne wyłuskanie funkcji ref-return, jest wyświetlany komunikat o błędzie.An error message is used when a type annotation indicates that an implicit dereference of a ref- return is now used.

Ponadto ten zestaw funkcji usuwa również usterkę w kompilatorze języka F#, która polegała na tym, że możliwe było „złośliwe zastąpienie struktury”, czyli sytuacja, w której podczas wywoływania metody w strukturze języka F# rzeczywista wywoływana struktura mogła zostać zastąpiona inną.Additionally, this feature set also fixes a bug in the F# compiler where "Evil struct replacement" was possible; i.e., calling a method on an F# struct could replace the actual struct that was called with a different one. 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.The this parameter on a struct is now considered an inref<MyStruct>, with an error that suggests you add a mutable field if you wish to modify the struct.

Więcej informacji na temat konstrukcji typu span i ref można znaleźć w dokumencie RFC dotyczącym tego zestawu funkcji.You can learn more about span and ref-like constructs in the RFC for this feature set.

Match! w wyrażeniach obliczeńMatch! in computation expressions

W języku F# 4.5 wprowadzono match!, nowe słowo kluczowe do użycia w wyrażeniach. Autorem całości tej koncepcji jest John Wostenberg.F# 4.5 introduces match!, a new keyword for use within computation expressions, contributed entirely by John Wostenberg. Ten lukier składniowy jest odpowiednikiem elementu let! z następującym po nim elemencie match w wyniku.This syntactic sugar is equivalent to a let! followed by a match on the result. Więcej informacji można znaleźć w dokumencie RFC dotyczącym słowa kluczowego match!.You can learn more in the RFC for match!.

Eliminowanie potrzeby przypisania elementu nadrzędnego przy użyciu instrukcji yield w wyrażeniach sekwencji, listy i tablicyRelaxing the need to upcast with yield in sequence, list, and array expressions

Język F# 4.5 w niektórych przypadkach eliminuje teraz konieczność przypisania elementu nadrzędnego przy użyciu elementu yield na potrzeby przekonwertowania podtypu na nadtyp.F# 4.5 now relaxes some cases where an upcast when using yield was required to convert a subtype into a supertype. To ograniczenie nie było już konieczne dla tych wyrażeń od wersji F# 3.1, gdy nie przy używano elementu yield, dlatego działanie jest teraz spójniejsze z istniejącym zachowaniem.This restriction was already not necessary for these expressions since F# 3.1 when not using yield, so this makes things more consistent with existing behavior. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.You can learn more in the RFC for this feature.

Dopuszczanie wcięcia w nawiasach na liście i w tablicyPermitting indentation on list and array brackets

W języku F# 4.5 złagodzono teraz regułę wcięć dla nawiasów listy i tablicy, która wymagała, aby były one wcięte o jeden zakres do przodu, jeśli znajdują się we własnym wierszu.F# 4.5 now relaxes the indentation rule for list and array brackets that required them to be indented one scope forward when on their own line. To wcześniejsze wymaganie zawsze było dość mylące, szczególnie w przypadku początkujących użytkowników języka F#.This previous requirement has always been quite confusing, especially for beginners to F#. Ponadto nie jest ona wymagana w przypadku wyrażeń sekwencji w języku F#.Additionally, it is not required for F# sequence expressions. Obecnie powoduje ona, że stan wyrażeń tablicy i listy jest spójny, tak jak w przypadku wyrażeń sekwencji.This now brings array and list expressions to the same consistent state as sequence expressions. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.You can learn more in the RFC for this feature.

Przypadki wyliczenia emitowane jako publiczneEnum cases emitted as public

Język F# 4.5 emituje teraz przypadki wyliczenia jako publiczne we wszystkich okolicznościach. Ma to na celu dopasowanie do sposobu emitowania przypadków wyliczenia w języku C#.F# 4.5 now emits enumeration cases as public under all circumstances, to align with how C# emits enumeration cases. Ponadto ułatwia narzędziom do profilowania analizowanie dzienników z kodu języka F#, jeśli wyemitowano wartość, a nie nazwę etykiety.This also makes it easier for profiling tools to analyze logs from F# code, where the value rather than the label name was emitted. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.You can learn more in the RFC for this feature.

Ulepszenia kompilatora języka F#F# Compiler Improvements

W języku F# 4.5 oprócz wymienionych wcześniej funkcji językowych dostępne są ulepszenia kompilatora języka F#.Improvements to the F# compiler in addition to the previously-mentioned language features are in F# 4.5. Należą do nich następujące elementy:These include:

  • Ulepszyliśmy wydajność pracy kompilatora przez usunięcie do 2,2% wszystkich alokacji w kompilatorze języka F# (w ramach różnych scenariuszy).We improved compiler performance work by removing up to 2.2% of all allocations in the F# compiler (under various scenarios).
  • Naprawiliśmy usterkę powodującą wyjątek AccessViolatioNException w przypadku używania elementu yield! z elementami wyliczalnymi opartymi na strukturze.We fixed a bug that results in an AccessViolatioNException when using yield! with struct-based enumerables.
  • Obecnie istnieje ponownie możliwość dziedziczenia z funkcji FSharpFunc.It is now possible to inherit from FSharpFunc again.
  • Wywołania tail są domyślnie wyłączone w przypadku kompilacji debugowania języka F# dla platformy .NET Core.Tail calls are disabled by default for debug builds of F# for .NET Core. Są one włączone do wydania i w związku z tym dopasowane do kompilatora F# pulpitu.They are enabled for release, thus matching the desktop F# compiler.
  • Naprawiono normalizację odwołań języka F#, aby umożliwić kontrolowanie odwołań do zestawów przechodnich zapisanych w pliku wyjściowym.F# reference normalization has been fixed to allow you to control transitive assembly references written to an output file. Dzięki temu można przeprowadzić odpowiednik przekierowania zestawów na platformie .NET Core.This allows you to perform the equivalent of assembly redirection on .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.We fixed a bug where the error message used when attempting to use dynamic invocation on inline functions was ignored. Obecnie następuje wypełnienie komunikatu o błędzie.The error message now propagates.
  • Język F# uwzględnia teraz flagę WarningsNotAsErrors, którą można ustawić w plikach projektu.F# now respects the WarningsNotAsErrors flag that you can set in project files.
  • Gdy gałęzie wzorca nie zwracają tego samego typu, komunikat o błędzie został zaktualizowany do bardziej przyjaznej postaci (autor: Isaac Abraham).When branches of a pattern match do not return the same error message type condition, has been updated to be friendlier by 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).An internal error bug when a compiling interface implementation that lacks an overloaded method implementation has been fixed by Steffen Forkmann.
  • Usunięto niektóre niepotrzebne operacje kopiowania tablicy w fazie analizy leksykalnej kompilatora (autor: Gauthier Segay).Some unnecessary array copying in the lexing phase of the compiler has been removed by Gauthier Segay.
  • Niekompletne dopasowania wzorca w wyliczeniach języka F# generują teraz szczegółowe ostrzeżenie z przykładem nieuwzględnionego przypadku (autor: John Wostenberg).Incomplete pattern matches on F# enumerations now produces a detailed warning that gives an example of a case not covered, contributed by John Wostenberg.
  • Opcja #nowarn „2003” jest obecnie uwzględniana (autor: Matthias Diitrich).`#nowarn "2003" is now respected, contributed by Matthias Diitrich.
  • Naprawiono usterkę polegającą na tym, że korzystanie z metod rozszerzeń języka C# mogło zakończyć się niepowodzeniem w przeciążonym rozwiązaniu języka F# (autor: Steffen Forkmann).A bug where consuming C# extensions methods could fail in F# overload resolution has been fixed by Steffen Forkmann.
  • Naprawiono wewnętrzny błąd struktury danych QueueList (autor: Steffen Forkmann).An internal QueueList data structure bug was fixed by Steffen Forkmann.
  • Wprowadzono różne mniejsze optymalizacje i operacje czyszczenia kodu (autorzy: Steffen Forkmann, Eugene Auduchinok i ncave).Various smaller optimizations and code cleanup efforts were contributed by Steffen Forkmann, Eugene Auduchinok, and ncave.

Podstawowa biblioteka języka F# 4.5.xF# Core Library 4.5.x

Udostępniono następujące dodatki do podstawowej biblioteki języka F#:The following additions to the F# Core Library are now available:

  • Wykonano wiele pracy w celu ulepszenia śladów stosu dla wyrażeń obliczeń async { }.Significant work has been done to improve stack traces for async { } computation expressions. W śladach stosu powinien być teraz widoczny kod użytkownika i numery wierszy użytkownika.You should now be able to see user code and user line numbers in stack traces. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.You can learn more in the RFC for this feature.
  • 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#.FuncConvert.FromFunc and FuncConvert.FromAction APIs that type System.Func and System.Action overloads, to help in interoperation with C#. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.You can learn more in the RFC for this feature.
  • ValueOption to nowy dostępny typ — pierwszy w zestawie przyszłych funkcji, który ma na celu zwiększenie wydajności aktywnych wzorców.ValueOption is a new type available, which is the first in a set of future features ultimately aimed at better performance for Active Patterns. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.You can learn more in the RFC for this feature.
  • TryGetValue to teraz nowy element członkowski typu mapy języka F#.TryGetValue is now a new member on the F# Map type. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.You can learn more in the RFC for this feature.
  • Naprawiliśmy wysokie użycie procesora przy pierwszym wywołaniu elementu MailboxProcessor.TryReceive.We fixed High CPU usage upon the first invocation of MailboxProcessor.TryReceive.
  • Porównanie dla elementubool teraz używa szybkiego porównania rodzajowego (autor: Vasily Kirichenko).Comparison for bool now uses fast generic comparison, contributed by Vasily Kirichenko.
  • Tekst podsumowania elementu Array.allPairs został zaktualizowany i jest teraz poprawny (autor: Patrick McDonald).The summary text for Array.allPairs has been updated to be correct, contributed by Patrick McDonald

Ulepszenia narzędzi języka F#F# Tooling Improvements

W tej wersji wprowadzono znaczne ulepszenia narzędzi języka F#, takie jak lepsza wydajność oraz nowe funkcje edytora.Significant improvements in the F# tools, such as performance enhancements and some new editor features are included this release. Jak zawsze duży wkład miała społeczność open source języka F#.As always, with a large number of contributions from the F# open source community. Poniżej przedstawiono najważniejsze nowości:Here are the highlights:

  • 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.We improved IntelliSense performance for .NET SDK-style projects of all forms, including those that use multi-targeting.
  • 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).A community-driven effort to analyze and improve IntelliSense performance for very large files was contributed by Vasily Kirichenko, Steffen Forkmann, and Gauthier Segay. Funkcja IntelliSense w bardzo dużych plikach (z ponad 10 000 wierszami kodu) działa teraz około dwa razy szybciej.IntelliSense in very large files (10k+ lines of code) is roughly twice as fast now.
  • 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.The warning for an outdated FSharp.Core (despite the package being installed) is no longer present in .NET SDK-style projects.
  • 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.The description tooltip that displays XML documentation for a member after . in IntelliSense no longer times out after 10 seconds.
  • Naprawiono usterkę polegającą na tym, że nie można było ustawić punktów przerwania w argumentach konstruktora obiektu.A bug where you could not set breakpoints in object constructor arguments has been fixed.
  • Naprawiono usterkę polegającą na tym, że symbol o zmienionej nazwie był duplikowany w przypadku parametru ogólnego.A bug where a renamed symbol would be duplicated when it is a generic parameter has been fixed.
  • Szablony dla programu .NET Framework (klasyczne szablony F#) korzystają teraz z biblioteki FSharp.Core z pakietu NuGet w celu uspójnienia zachowania z szablonami .NET SDK F#.Templates for .NET Framework (classic F# templates) now consume FSharp.Core from a NuGet package, to align with .NET SDK F# templates.
  • Automatyczne, transakcyjne uzupełnianie nawiasów jest teraz dostępne dla par nawiasów (), [], {}, [||] i [<>].Automatic, transactional brace completion is now available for (), [], {}, [||], and [<>] brace pairs. Wykonaliśmy tę pracę we współpracy z użytkownikiem Gibran Rosa.We did this work in collaboration with Gibran Rosa.
  • Przejście do definicji jest teraz możliwe za pomocą akcji Ctrl + kliknięcie na symbolu języka F#.You can now go to definition with Ctrl + Click on an F# symbol. Ustawienia dla tego gestu obowiązują również w oknie Narzędzia > Opcje.The settings for this gesture are also respected in the Tools > Options window.
  • Zmodyfikowano interfejs użytkownika wydajności funkcji IntelliSense, aby umożliwić konfigurację nieaktualnych informacji typecheck dotyczących różnych funkcji środowiska IDE.The IntelliSense performance UI has been modified to allow configuration of stale typecheck information for various IDE features. Objaśnienia dla poszczególnych opcji znajdują się teraz w etykietkach narzędzi ustawień.Explanations for each option are now present in tooltips for the settings.
  • Wyróżnianie odpowiednich nawiasów klamrowych działa teraz poprawnie. Dokonano tego we współpracy z użytkownikiem Vasily Kirichenko.Brace match highlighting now correctly highlights braces, completed in collaboration with 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).Go to definition now navigates correctly when a type is defined recursively, contributed by 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.A bug where an auto-imported namespace wasn't opened when the top of a file was empty has been fixed by Vasily Kirichenko.
  • Vasily Kirichenko naprawił usterkę polegającą na tym, że specyfikatory printf zawierające kropki były wyświetlane w nieprawidłowych kolorach.A bug where printf specifiers that contained dots were miscolored has been fixed by Vasily Kirichenko.
  • Vasily Kirichenko naprawił usterkę polegającą na tym, że wszystkie otwarte obiekty były uznawane za nieużywane w rekursywnym module.A bug where all opens were considered unused inside of a recursive module has been fixed by Vasily Kirichenko.
  • Vasily Kirichenko znacznie zwiększył wydajność analizatora nieużywanych otwartych obiektów.The performance of the Unused Opens analyzer has been improved significantly by Vasily Kirichenko.
  • 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).Autocompletion for attributes now only suggests options that are actually attributes, contributed by 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).Signature Help tooltips are now generated for Type Provider static parameters at the constructor call site, contributed by 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ń.A bug where value types used as units of measure were colored as reference types has been fixed by Vasily Kirichenko.
  • Vasily Kirichenko naprawił usterkę polegającą na tym, że kolorowanie składni mogło znikać podczas przewijania niektórych plików.A bug where semantic colorization could disappear for some files while scrolling has been fixed by Vasily Kirichenko.
  • Eksperymentalnie zaimplementowano teraz obsługę funkcji CodeLens (dzięki współpracy z użytkownikiem Victor Peter Rouven Müller).There is now an experimental CodeLens implementation, contributed by Victor Peter Rouven Müller. Można ją włączyć w oknie Opcje > Edytor tekstów > F# > Code Lens.You can turn it on in Options > Text Editor > F# > Code Lens.
  • Sebastian Urban naprawił usterkę polegająca na tym, że usługa kompilatora F# niepoprawnie opuszczała nazwy modułów w dokumentacji XML.A bug where the F# compiler service would incorrectly elide the module names in XML documentation has been fixed by Sebastian Urban.
  • Eugene Auduchinok zmienił zachowanie kodu, który używał wywołań elementu Dictionary z ContainsKey, a następnie Item, aby używał elementu TryGetValue.Code that uses Dictionary with ContainsKey and subsequent Item calls has been changed to use TryGetValue, by Eugene Auduchinok.
  • Jakob Majoka również miał swój wkład w procesie używania innego interfejsu API dla etykietki narzędzi.Jakob Majoka also contributed in the process of consuming a different API for Tooltips.

Ulepszenia dotyczące infrastruktury, tworzenia pakietów i kodu typu open sourceInfrastructure, Packaging, and Open Source Improvements

Wprowadziliśmy następujące ulepszenia dotyczące infrastruktury, tworzenia pakietów i udziału w naszym środowisku typu open source:We made the following enhancements to infrastructure, packaging, and our open source contribution experience:

  • Kompilator języka F# dystrybuowany razem z programem Visual Studio nie jest już instalowany jako pojedyncze wystąpienie w lokalizacji zestawu SDK kompilatora języka F#.The F# compiler distributed with Visual Studio no longer installs as a singleton in the F# Compiler SDK location. Teraz jest to oprogramowanie działające równolegle do programu Visual Studio, co oznacza, że instalacje równoległe programu Visual Studio mają wreszcie działające w pełni równolegle środowiska narzędziowe i językowe języka F#.It is now fully side-by-side with Visual Studio, meaning that side-by-side installations of Visual Studio will finally have truly side-by-side F# tooling and language experiences.
  • Pakiet NuGet FSharp.Core jest teraz podpisany.The FSharp.Core NuGet package is now signed.
  • Do narzędzi i kompilatora języka F# dodano rejestrowanie ETW.ETW logging has been added to the F# tools and compiler.
  • 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.The very large control.fs/control.fsi files in FSharp.Core have been split into async.fs/async.fsi, event.fs/event.fsi, eventmodule.fs/eventmodule.fsi, mailbox.fs/mailbox.fsi, and 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.We added .NET SDK-style versions of our project performance stress test artifacts.
  • 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.We removed Newtonsoft.json from our codebase, and you now have one less package downloaded for OSS contributors.
  • Używamy teraz najnowszych wersji pakietów System.Collections.Immutable i System.Reflection.Metadata.We now use the latest versions of System.Collections.Immutable and System.Reflection.Metadata.

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

Ta wersja zawiera następujące ulepszenia dotyczące zgodności i zestawu narzędzi języka C++:This release contains the following C++ conformance and toolset improvements:

  • 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.A new, experimental, token-based preprocessor that conforms to C++11 standards (including C99 preprocessor features), enabled with the /experimental:preprocessor switch. 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.This is controlled with macro _MSVC_TRADITIONAL, which is defined 1 when using the traditional preprocessor and 0 when using the new experimental standards conformant preprocessor.
  • 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).The Visual Studio Developer Command Prompt supports enabling the Visual C++ Spectre variant 1 mitigated runtimes (-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++.More information about Spectre mitigations is available on the Visual C++ Team Blog.
  • Dodano dwa nowe dodatki do optymalizatora architektury SSA obsługujące generowanie nowoczesnego kodu C++: eliminację nadmiarowego magazynu i składanie nadmiarowych gałęzi.Two new additions to the SSA Optimizer focused on modern C++ code generation: redundant store elimination and folding of redundant branches.
  • Zoptymalizowano wydajność operacji We/Wy mapowania pamięci w konsolidatorze, aby zmniejszyć czasy konsolidowania.Optimized memory mapped I/O performance in the linker to reduce link times.

Tworzenie aplikacji międzyplatformowych w języku C++C++ Cross-Platform Development

W tej wersji dodaliśmy i ulepszyliśmy następujące funkcje tworzenia aplikacji międzyplatformowych w języku C++:We added, improved, and added the following to C++ cross-platform development for this release:

  • 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.Added Add > New Item template for generating a .clang-format file following the coding convention specified for ClangFormat in Tools > Options. 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.If the Visual Studio convention is selected, the generated file tries to match the user's current Visual Studio formatting configuration from Tools > Options.
  • Zaktualizowano dostarczany plik clang-format.exe do wersji 6.0.0.Updated the shipped clang-format.exe version to 6.0.0.
  • Dodano szablony ułatwiające dodawanie konfiguracji do pliku CppProperties.json.Templates to simplify adding configurations to CppProperties.json.
  • Dodano szablony ułatwiające dodawanie konfiguracji do pliku CMakeSettings.json (Rysunek 7) .Added templates to simplify adding configurations to CMakeSettings.json (Figure 7).
Configuration templates for CMake
(Rysunek 7) Szablony konfiguracji dla narzędzia CMake(Figure 7) Configuration Templates for CMake

Produktywność w języku C++C++ Productivity

Wprowadziliśmy następujące rozszerzenia i ulepszenia dotyczące produktywności języka C++:We made the following enhancements and improvements to C++ productivity:

  • Etykietki Szybka podpowiedź do makr w języku C++ pokazują teraz, co rozszerzają, a nie tylko samą definicję.C++ Quick Info tooltips on macros now show what they expand to, rather than just their definition. 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.This is particularly useful for complex macros that reference other macros as it clarifies what the macro identifier is replaced with by the preprocessor.
  • Dodano nową ikonę żarówki szybkiej poprawki umożliwiającą przekonwertowanie podstawowych makr na element constexpr jako nowe narzędzia do modernizacji kodu.Added a new quick-fix lightbulb to convert basic macros to constexpr as a new tool to modernize code.
  • 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) .IntelliSense for templates provide you more details about template arguments to take full advantage of IntelliSense within your template body (Figure 8).
Template IntelliSense
(Rysunek 8) Funkcja IntelliSense dla szablonów(Figure 8) Template IntelliSense
  • Pracujemy nad odświeżeniem naszego środowiska analizy kodu.We are working to refresh our code analysis experience. Już teraz możesz włączyć nowe, ciągle opracowywane funkcje w oknie Narzędzia > Opcje > Edytor tekstów > C++ > Eksperymentalne > Analiza kodu.You can now enable the new, in-progress features under Tools > Options > Text Editor > C++ > Experimental > Code Analysis. 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) .Code analysis can run in the background when files are opened or saved, and results are displayed in the error list and as green squiggles in the editor (Figure 9).
In-editor code analysis
(Rysunek 9) Analiza kodu w edytorze(Figure 9) In-editor Code Analysis

Ulepszenia debugowania języka C++C++ Debugging Improvements

Wprowadziliśmy następujące ulepszenia debugowania:We made the following debugging improvements:

  • 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ń.Just My Code now enables you to step-over code from system or 3rd party C++ libraries in addition to collapsing those calls in the call-stack window. 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.You can control this behavior for any C++ libraries when your code is compiled with /JMC and the non-user libraries paths are specified in a .natjmc file. 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) .If the system library calls into user-code, when you step in, the debugger skips all system code and stops on the first line of user-code callback (Figure 10).
Just My Code
(Rysunek 10) Funkcja Tylko mój kod(Figure 10) Just My Code
  • 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.Data breakpoints can now be set inside the Watch, Quickwatch, Autos, and Locals windows, allowing you to break when a value stored in memory changes in just a few, short clicks.
  • Link źródłowy umożliwia osadzanie informacji o oryginalnym kodzie źródłowym pliku wykonywalnego lub biblioteki w pliku PDB podczas kompilacji.Source Link lets you embed information about an executable or library's original source code into the PDB during compilation.
  • Podczas debugowania domyślnie okno konsoli pozostaje teraz otwarte, gdy program kończy wykonywanie (podobnie jak w przypadku uruchamiania programu bez debugera).When debugging, the console window now stays open by default when the program terminates execution (similar to running the program without the debugger). 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.This behavior can be toggled back to closing the console automatically in Tools > Options > Debugging > General.

Ulepszenia języków TypeScript i JavaScriptJavaScript and TypeScript Improvements

TypeScript 3.0TypeScript 3.0

Program Visual Studio 2017 w wersji 15.8 domyślnie zawiera teraz kod TypeScript 3.0.Visual Studio 2017 version 15.8 now includes TypeScript 3.0 by default. Aby uzyskać szczegółowe informacje na temat tej wersji, zobacz Ogłoszenie wydania TypeScript 3.0.For more details on this release, see the TypeScript 3.0 release announcement.

Ulepszona obsługa platformy Vue.jsImproved Vue.js support

Ulepszono obsługę biblioteki platformy Vue.js, a w szczególności obsługę plików vue, znanych także jako „składniki jednoplikowe”.Support for the Vue.js library has been improved, and in particular support for .vue files, also known as "single file components". 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.This provides enhancements when editing script blocks inside .vue files, including support for script blocks authored in TypeScript through the lang="ts" attribute on the script element. (Uwaga: W celu przekonwertowania plików vue na pliki HTML i JS, które są potrzebne w czasie wykonywania, należy użyć procesu kompilacji korzystającego z pakietu WebPack lub podobnego.(Note: A build process using WebPack or similar must be used to convert the .vue files to the HTML and JS files needed at runtime. Aby uzyskać więcej informacji, zobacz stronę na temat składników jednoplikowych).See the Single File Components page for more details).

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.If the Node.js workload is installed, there will now be "Basic Vue.js Web Application" templates under the "JavaScript / Node.js" or "TypeScript / Node.js" paths in the New Project dialog. Poniżej przedstawiono przykład edytowania kodu TypeScript wewnątrz bloku skryptu w pliku vue (Rysunek 11) .The below shows an example of editing TypeScript code inside a script block in a .vue file (Figure 11).

Editing a .vue file
(Rysunek 11) Edytowanie plików vue(Figure 11) Editing .vue Files

Ulepszenia programu ESLintESLint Improvements

W tej wersji ponownie zaimplementowaliśmy obsługę programu ESLint.We reimplemented ESLint support for this release. Program ESLint zawiera następujące ulepszenia i udoskonalenia:ESLint has the following improvements and enhancements:

  • 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.Rather than only linting saved files, Visual Studio will now lint JavaScript files as you edit, as well.
  • 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.Results can be reported for all JS files in your project, not just open files; if there are parts of your project you do not want to be linted, an .eslintignore file can now be used to specify directories and files that should be ignored.
  • 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.ESLint was updated to use ESLint 4 by default, but if your project has a local installation of ESLint, it will use that version instead.

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) .ESLint may be disabled globally in Visual Studio by unchecking the Enable ESLint setting in the **Tools > Options > Text Editor > Javascript/Typescript > Linting ** (Figure 12).

ESLint Options
(Rysunek 12) Opcje programu ESLint(Figure 12) ESLint Options

Ulepszenia otwierania folderu dla środowiska Node.jsOpen Folder Improvements for Node.js

Wprowadziliśmy liczne ulepszenia pracy z językami JavaScript i TypeScript w scenariuszu otwierania folderu po zainstalowaniu „obciążenia Node.js”.There are numerous improvements working with JavaScript and TypeScript in the Open Folder scenario when the "Node.js workload" is installed. 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.For example, managing NPM packages, building TypeScript, launching and debugging with Node.exe, executing NPM scripts, and running unit tests.

Aby uzyskać więcej informacji, zobacz Tworzenie kodu JavaScript i TypeScript w programie Visual Studio bez rozwiązań ani projektów.See Develop JavaScript and TypeScript code in Visual Studio without solutions or projects} for more information.

Ulepszenia wydajności edytoraEditor Performance Improvements

W poprzednich wersjach wszystkie operacje usługi języków JavaScript i TypeScript były obsługiwane przez jeden proces platformy Node.js.In previous releases, all JavaScript and TypeScript language service operations were serviced by a single Node.js process. 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).This could cause editor delays if commands that impact user typing (such as automatic formatting after a newline) were sent while a potentially lengthy operation was already in process (such as analyzing code for errors). Aby temu zaradzić, na potrzeby operacji, które mają największy wpływ na edytowanie, jest teraz używany oddzielny proces.To mitigate this, a separate process is now used for the operations that impact editing the most. Ten proces zdecydowanie mniej obciąża zasoby systemu, niż istniejący proces usługi językowej.This process is significantly lighter on system resources than the existing language service process. 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.However, if you wish to disable the new process, check the Disable dedicated syntax process box in Tools > Options > Text Editor > JavaScript/TypeScript > Language Service.

Narzędzia Visual Studio Web ToolsVisual Studio Web Tools

Menedżer biblioteki to nowa funkcja zawarta w programie Visual Studio 2017.Library Manager is a new feature included in Visual Studio 2017. Ułatwia ona zarządzanie bibliotekami po stronie klienta w projektach internetowych.It helps you manage client-side libraries in your web projects.

Narzędzia kontenerówContainer Tools

Dodaliśmy nowe środowisko kontenera platformy Docker pojedynczego projektu dla projektów internetowych platformy ASP.NET Core.We added a new single project Docker container experience for ASP.NET Core web projects. 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.This supplements the existing Docker Compose-based container tooling and provides a simpler, easier way to create, debug, and build Docker containers right from Visual Studio.

Obsługę platformy Docker można dodać podczas tworzenia projektu (Rysunek 13):You can add Docker support when creating the project (Figure 13):

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

Obsługę platformy Docker można też włączyć w istniejącym projekcie za pomocą menu kontekstowego projektu w Eksploratorze rozwiązań (Rysunek 14) .Or, you can enable Docker support to an existing project through the project's context menu in Solution Explorer (Figure 14). Gdy to zrobisz, program Visual Studio utworzy pojedynczy plik Dockerfile w projekcie.Once you do this, Visual Studio creates a single Dockerfile in the project. Masz możliwość wyboru systemu: Windows lub Linux.You have the option to choose either Windows or Linux.

Add Docker Support
(Rysunek 14) Dodawanie obsługi platformy Docker(Figure 14) Add Docker Support

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.Visual Studio also adds a debugger launch profile (Figure 15) for Docker so that the project can be debugged while running within a container.

Docker Launch Profile
(Rysunek 15) Profil uruchamiania platformy Docker(Figure 15) Docker Launch Profile

Jeśli masz rozwiązanie z wieloma projektami platformy Docker, to gdy je uruchomisz, domyślnie będzie działał tylko jeden kontener.If you have a solution with multiple Docker projects, by default, only one container runs when you choose to start the solution. 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ć.If you wish to run multiple containers simultaneously, you can right-click on the solution in Solution Explorer and select Set Startup Projects and then Multiple startup projects, and then set the Action drop-down to Start or Start without debugging for all projects that you want to run.

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.Once you have your containerized project running the way you want, you can right-click on the project and select Build Docker Image to build an image locally, when ready to push to Azure Container Registry or 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) .You can also add the existing Docker Compose-based functionality to an ASP.NET Core web project through the new Container Orchestrator Support option (Figure 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.Right-click on the ASP.NET Core web project in Solution Explorer, select Add > Container Orchestrator Support, and then select Docker Compose from the drop-down menu.

Add Container Orchestrator Support
(Rysunek 16) Dodawanie obsługi orkiestracji(Figure 16) Add Orchestration Support

Ulepszenia publikowaniaPublish Improvements

Ta wersja zawiera następujące ulepszenia dotyczące publikowania:This release contains the following publish improvements:

  • Podczas publikowania kontenera platformy Docker w rejestrze kontenerów możesz teraz dostosować tag obrazu.When publishing a Docker container to a container registry, you can now customize the tag for the image. 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.You can either manually add a tag (default is "latest") or use an auto-generated tag to make sure each tag is unique.
  • Podczas tworzenia nowej usługi Azure App Service możesz również skonfigurować automatyczne zbieranie danych telemetrycznych w usłudze Application Insights.When creating a new Azure App Service, you can also configure Application Insights to collect telemetry automatically. Jeśli wybierzesz region, który ma także usługę Application Insights, będzie ona włączona domyślnie.If you choose a region that also has Application Insights, it is enabled by default. 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.If you choose a region that does not yet contain Application Insights, you can manually specify a different region for your Application Insights resource from the dropdown.
  • Podczas publikowania projektów usługi Azure Functions możesz wybrać publikowanie za pomocą nowej funkcji Uruchom z archiwum ZIP.When publishing Azure Functions projects you can choose to publish using the new Run-From-Zip feature.

Visual Studio Tools dla programu XamarinVisual Studio Tools for Xamarin

Ta wersja zawiera następujące aktualizacje dla programu Xamarin:This release contains the following updates for Xamarin:

  • Dodaliśmy obsługę środowiska Xcode 9.4.We added support for Xcode 9.4.
  • Podczas tworzenia nowego projektu platformy Xamarin.Forms opcją udostępniania kodu domyślnego jest teraz .NET Standard.When you create a new Xamarin.Forms project, the default code sharing option is now .NET Standard. Opcja projektu udostępnionego jest nadal dostępna.The shared project option is still available.
  • Dodaliśmy ulepszenia kompilacji przyrostowej systemu Android.We added Android incremental build improvements. 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.Xamarin.Android uses files generated in the intermediate output directory to achieve incremental builds that are faster than full builds. Wcześniej zmiana platformy docelowej projektu powodowała unieważnienie plików oraz wykonanie pełnej kompilacji przy następnym uruchomieniu.Previously, if you changed your project's target framework it would invalidate the files and result in a full build on the next run. 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.In this release we now preserve the files in per-framework folders so you can switch between different target frameworks and still benefit from incremental builds. Czyszczenie projektu umożliwia odzyskanie miejsca na dysku używanego przez zachowane pliki.Cleaning the project allows you to reclaim the disk space used by the preserved files.
  • Dodaliśmy minimalną obsługę rozszerzenia projektów powiązania Xamarin.Mac w programie Visual Studio 2017.We have added minimum support for Xamarin.Mac binding projects in Visual Studio 2017. Dzięki temu program Visual Studio może ładować i rozpoznawać projekty powiązania Xamarin.Mac jako obsługiwane.This enables Visual Studio to load and recognize Xamarin.Mac binding projects as supported. Można też kompilować projekty powiązania Xamarin.Mac.You can also build Xamarin.Mac binding projects. 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.However, the build process is performed locally without using the native Mac tool chain, so the generated IL assemblies cannot be used for running or debugging in apps.

Obsługa emulatora systemu Android z funkcją Hyper-VHyper-V Android Emulator Support

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) .This release adds support for the Google Android emulator that is compatible with Hyper-V when running on the Windows 10 April 2018 Update (Figure 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.This enables you to use Google's Android emulator side-by-side with other Hyper-V based technologies, including Hyper-V virtual machines, Docker tooling, the HoloLens emulator, and more. 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.Mobile app developers who use Hyper-V now have access to a fast Android emulator that always supports the latest Android APIs, works with Google Play Services out of the box, and supports all features of the Android emulator, including camera, geolocation, and Quick Boot.

Screenshot of both the Google Android emulator and HoloLens emulator running at the same time.
(Rysunek 17) Emulator systemu Google Android i emulator urządzenia HoloLens
(Figure 17) Google Android Emulator and HoloLens Emulator

Projektant platformy Xamarin.AndroidXamarin.Android Designer

Wprowadziliśmy znaczące ulepszenia środowiska projektanta platformy Xamarin.Android.We made significant improvements to the designer experience for Xamarin.Android. Najważniejsze z nich to:Highlights include:

  • 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) .A split-view editor was introduced which allows you to create, edit, and preview your layouts at the same time (Figure 18).
Screenshot of the Xamarin.Android split-view editor.
(Rysunek 18) Edytor widoku złożonego platformy Xamarin.Android
(Figure 18) Xamarin.Android Split-view Editor
  • Ulepszono środowisko funkcji IntelliSense i zwiększono niezawodność kontrolek niestandardowych.Improved IntelliSense experience and reliability of custom controls.
  • Obsługa przykładowych danych dla systemów podawanych przez system.Sample data support for system provided values.

Program podglądu zestawu narzędzi Xamarin.FormsXamarin.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.The Xamarin.Forms Previewer now has toolbox support when using Xamarin.Forms version 3.1.0.583944 or higher. 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ć.Xamarin.Forms controls will appear in the toolbox so they are more discoverable for those new to the toolkit. Można również przeciągać i upuszczać kontrolkę w edytorze kodu XAML w celu dodania jej do strony.You can also drag and drop a control onto the XAML code editor to add the control to the page. Program podglądu elementów Xamarin.Forms jest teraz częścią edytora XAML.The Xamarin.Forms Previewer is now part of the XAML editor. Można go otworzyć i zamknąć za pomocą ikony rozwijania, znajdującej się na krawędzi okienka edytora.You can open and close it with the expand icon on the edge of the editor pane.

PythonPython

W tej wersji dodano następujące ulepszenia dla deweloperów języka Python:This release adds the following improvements for Python developers:

  • 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.Python IntelliSense now uses typeshed definitions to provide richer results for libraries where auto-completions cannot be inferred by static analysis.
  • 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.The experimental debugger, first announced in the 15.7 preview releases, is now the default debug engine used for Python, providing faster and more reliable debugging for Python code.
  • 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).We have added support for Python 3.7, including fixes to enable debug attach, profiling, and mixed-mode (cross-language) debugging features.
  • 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).For more information about the above features, be sure to check out our Python in Visual Studio 2017 version 15.8 blog post.

Migrowanie lokalnych ustawień funkcji platformy AzureMigrate Local Azure Function Settings

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.The "Managed Application Settings" dialog available from the publish summary page now displays values from your local.settings.json file and enables you to migrate values to your remote Azure Function app hosted in Azure.

Usługi połączoneConnected Services

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.You can now configure continuous delivery for Azure functions directly from Visual Studio 2017 for solutions with Azure Function Projects.

Ulepszenia Eksploratora testówTest Explorer Improvement

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.Test Explorer now displays a more informative test status summary pane (lower pane of test explorer) when one of the groupings in the hierarchy view is selected. 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.The pane now displays how many tests failed, passed, or not run in that grouping.

Nowe funkcje rozszerzalnościNew Extensibility Features

Language Server ProtocolLanguage Server Protocol

Program Visual Studio oferuje teraz natywną obsługę protokołu Language Server Protocol.Visual Studio now has native support for the 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.Extension authors can create extensions that communicate with existing language servers to add additional language support to Visual Studio. Użytkownicy rozszerzeń mogą je instalować, aby rozpocząć używanie ulubionego języka, takiego jak Rust, w programie Visual Studio.Extension users can install these extensions to start using their favorite language inside Visual Studio like Rust.

Szablon AsyncPackageAsyncPackage Template

Twórcy rozszerzeń mogą teraz używać szablonów elementów, aby tworzyć pakiety AsyncPackage, które optymalizują wydajność rozszerzeń.Extension authors can now use item templates to create AsyncPackages to optimize their extension's performance. Przeczytaj więcej na temat pakietów AsyncPackages.Read more about AsyncPackages.

Pakiety rozszerzeńExtension Packs

Łatwo udostępniaj ulubiony zestaw rozszerzeń lub konfiguruj nową instalację programu Visual Studio ze wszystkimi rozszerzeniami przy użyciu pakietu rozszerzeń.Easily share your favorite set of extensions or set up a new install of Visual Studio with all your extensions by using an extension pack. Pakiety rozszerzeń umożliwiają utworzenie listy rozszerzeń, spakowanie ich w postaci rozszerzenia i szybkiego użycia w celu zbiorczego zainstalowania tych rozszerzeń.Extension packs allow you to create a list of extensions, package them in an extension, and use it quickly to install those extensions in bulk.

Publikowanie rozszerzenia wiersza poleceniaCommand Line Extension Publishing

Publikowanie rozszerzeń w witrynie Visual Studio Marketplace przy użyciu wiersza polecenia.Publish your extensions to the Visual Studio Marketplace using the command line.

Zestaw .NET Core SDK 2.1.400.NET Core SDK 2.1.400

Program Visual Studio 2017 w wersji 15.8 zawiera zestaw .NET Core SDK 2.1.400.Visual Studio 2017 version 15.8 includes .NET Core SDK 2.1.400. Nowe funkcje zestawu SDK:New SDK features include:

  • Dodano szablony NUnitAdded NUnit templates
  • Dodano obsługę podpisanych narzędzi globalnychAdded support for signed global tools
  • Ulepszono tekst pomocy w celu zwiększenia czytelnościImproved help text for better clarity

Zamknięto 32 problemy w interfejsie wiersza polecenia platformy .NET Core32 issues were closed on the .NET Core CLI.
Zamknięto 20 problemów w zestawie SDK platformy .NET Core20 issues were closed on the .NET Core SDK.

Kontrola kodu źródłowegoSource Control

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.For .NET Core projects, files added directly to the project through File Explorer will now show the correct Git and TFS tracking icons in the Solution Explorer without needing to reload the solution.

Rozszerzenie adaptera testowego platformy .NET.NET Test Adapter Extension

Adapter testowy platformy .NET ma następującą zmianę powodującą niezgodność i wycofanie:The .NET Test Adapter has the following breaking change and deprecation:

  • Zmiana powodująca niezgodność: Pliki csproj wszystkich projektów testowych muszą zawierać odwołanie NuGet adaptera testowego .NET.Breaking Change: All test projects must include their .NET test adapter NuGet reference in their csproj. W przeciwnym razie te dane wyjściowe testu pojawią się w projekcie, jeśli odnajdowanie przez rozszerzenie adaptera testowego rozpocznie się po kompilacji lub jeśli użytkownik spróbuje uruchomić wybrane testy:If they do not, this test output will appear on the project if discovery by a test adapter extension is kicked off after a build or if the user tries to run the selected tests:
    • Projekt testowy {} nie odwołuje się do żądnego adaptera NuGet platformy .NET.Test project {} does not reference any .NET NuGet adapter. Odnajdywanie lub wykonywanie testów może nie działać w przypadku tego projektu.Test discovery or execution might not work for this project. Zaleca się odwoływanie do adapterów testowych NuGet w każdym projekcie testowym w rozwiązaniu.It is recommended to reference NuGet test adapters in each test project in the solution.
  • W przypadku platform testowych .NET adaptery były wydawane w pakietach i nastąpiło odejście od rozszerzeń programu Visual Studio..NET test frameworks have been releasing their adapters in NuGet packages and moving away from Visual Studio extensions. Obsługa adapterów testowych platformy .NET dostarczanych za pośrednictwem rozszerzeń jest przestarzała, ale nadal obsługiwana.The support for .NET test adapters delivered through extensions is deprecated, but still supported. Oznacza to, że w obszarze Narzędzia > Opcje > Test są dostępne dwie nowe opcje.This means that two new options are available in Tools > Options > Test.
    • 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.The first option allows Visual Studio to only use the test adapters it finds in the test assembly folder (populated by the test adapter NuGet reference) or as specified in the runsettings file.
    • 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.The second option allows Visual Studio to "fallback" to the old behavior and search for test adapter extensions for projects that do not have a test adapter NuGet reference. Obie opcje są wybierane domyślnie, dlatego zachowanie domyślne nie zmieni się w tej wersji.Both options are checked by default, so no default behavior will change in this release.
  • Uwaga: Ta zmiana nie wpływa na adaptery testowe inne niż platformy .NET.Note: Non-.NET test adapters are not affected with this change.

Obsługa wpisów tajnych programu .NET Framework na platformie ASP.NETASP.NET .NET Framework Secrets Support

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”.For ASP.NET, .NET Framework projects that target .NET Framework 4.7.1 or higher, you can now open and store secrets you do not want in your source code in usersecrets.xml by right-clicking on the project and selecting "Managed User Secrets".

Zwiększanie wydajności projektów .NET Framework platformy ASP.NETImprove ASP.NET .NET Framework Performance

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.If the referenced .NET Compiler package is out of date in an ASP.NET .NET Framework project, Visual Studio will prompt you to upgrade the package when you open the project to improve your build performance.

.NET Framework 4.7.2.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.Visual Studio 2017 version 15.8 now offers the .NET Framework 4.7.2 development tools to all supported platforms with the 4.7.2 runtime included. 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.The .NET Framework 4.7.2 offers several new features and improvements as well as numerous reliability, stability, security, and performance fixes.

Więcej informacji na temat programu .NET Framework 4.7.2 można znaleźć w następujących artykułach:You can find more details about the .NET Framework 4.7.2 in these articles:

Opóźnianie ładowania pakietówDelay Package Load

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.Visual Studio now delays the loading of asynchronous packages that are configured to autoload until after the Visual Studio IDE has fully started and the solution has loaded. Ta zmiana nie wpływa na pakiety ładowane automatycznie w sposób synchroniczny.This change does not affect synchronously autoloaded packages. Użytkownicy mogą monitorować postęp, korzystając z centrum stanu zadań w lewym dolnym rogu paska stanu.Users can look at the Task Status Center in the lower left corner of the status bar to monitor progress. Twórcy rozszerzeń, którzy tworzą pakiety asynchroniczne, powinni testować swoje rozszerzenia.Extension authors that create asyncpackages should test their extension. 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ń).For more information, see Improving the responsiveness of critical scenarios by updating auto load behavior for extensions.


Release Notes Icon Powiadomienie o biuletynie zabezpieczeń programu Visual Studio 2017 w wersji 15.8Visual Studio 2017 version 15.8 Security Advisory Notices

Wydanie usługi programu Visual Studio 2017 w wersji 15.8.7 — wydane 10 października 2018 r.Visual Studio 2017 version 15.8.7 Service Release -- released on October 10, 2018

CVE-2018-8292 Luka w zabezpieczeniach platformy .NET Core umożliwiająca ujawnienie informacjiCVE-2018-8292 .NET Core Information Disclosure Vulnerability

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.A security feature bypass vulnerability exists in .NET Core when HTTP authentication information is inadvertently exposed in an outbound request that encounters an HTTP redirect. 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.An attacker who successfully exploited this vulnerability could use the information to further compromise the web application. Aktualizacja zabezpieczeń usuwa tę lukę w zabezpieczeniach, poprawiając sposób obsługi przekierowań HTTP w aplikacji .NET Core.The security update addresses the vulnerability by correcting how .NET Core applications handles HTTP redirects.

Wydanie usługi programu Visual Studio 2017 w wersji 15.8.4 — wydane 11 września 2018 r.Visual Studio 2017 version 15.8.4 Service Release -- released on September 11, 2018

CVE-2018-8409 Odmowa usługi na platformie .NET CoreCVE-2018-8409 .NET Core Denial Of Service Vulnerability

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.A denial of service vulnerability exists in .NET Core 2.1 when System.IO.Pipelines improperly handles requests. Tę lukę w zabezpieczeniach może wykorzystać atakujący i spowodować odmowę usługi dla aplikacji korzystającej z elementu System.IO.Pipelines.An attacker who successfully exploited this vulnerability could cause a denial of service against an application that is leveraging System.IO.Pipelines. Lukę w zabezpieczeniach można wykorzystać zdalnie bez uwierzytelniania.The vulnerability can be exploited remotely, without authentication. Zdalny nieuwierzytelniony atakujący może wykorzystać tę lukę, dostarczając do aplikacji specjalnie przygotowane żądania.A remote unauthenticated attacker could exploit this vulnerability by providing specially crafted requests to the application.

CVE-2018-8409 Odmowa usługi na platformie ASP.NET CoreCVE-2018-8409 ASP.NET Core Denial Of Service Vulnerability

Luka w zabezpieczeniach typu „odmowa usługi” występuje na platformie ASP.NET Core 2.1, gdy nieprawidłowo obsługuje ona żądania.A denial of service vulnerability exists in ASP.NET Core 2.1 that improperly handles web requests. Tę lukę w zabezpieczeniach może wykorzystać atakujący i spowodować odmowę usługi dla aplikacji internetowej platformy ASP.NET Core.An attacker who successfully exploited this vulnerability could cause a denial of service against an ASP.NET Core web application. Lukę w zabezpieczeniach można wykorzystać zdalnie bez uwierzytelniania.The vulnerability can be exploited remotely, without authentication. Zdalny nieuwierzytelniony atakujący może wykorzystać tę lukę, dostarczając do aplikacji platformy ASP.NET Core specjalnie przygotowane żądania internetowe.A remote unauthenticated attacker could exploit this vulnerability by providing a specially crafted web requests to the ASP.NET Core application.

Visual Studio 2017 w wersji 15.8 — wydane 14 sierpnia 2018 r.Visual Studio 2017 version 15.8 -- released on August 14, 2018

CVE-2018-0952 Luka w zabezpieczeniach dotycząca podniesienia poziomu uprawnień standardowego modułu zbierającego centrum diagnostykiCVE-2018-0952 Diagnostic Hub Standard Collector Elevation of Privilege Vulnerability

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.An elevation of privilege vulnerability exists in a visual studio service, which can lead to system privileges by a non-admin user when writing files. Osoba atakująca, która wykorzysta tę lukę, może zapisywać pliki jako system, mając dostęp tylko na poziomie użytkownika.An attacker who took advantage of this could write files as system while only having user level access. Ta aktualizacja zabezpieczeń rozwiązuje ten problem, personifikując bieżącego użytkownika w celu weryfikacji dostępu do lokalizacji pliku.This security update addresses this issue by impersonating the current user to validate access to the file location.

Visual Studio 2017 w wersji 15.8, wersja zapoznawcza 4 — wydane 10 lipca 2018 r.Visual Studio 2017 version 15.8 Preview 4 -- released on July 10, 2018

CVE-2018-8172 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu w programie Visual StudioCVE-2018-8172 Visual Studio Remote Code Execution Vulnerability

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.A remote code execution vulnerability that can lead to exploitation of a user's machine by opening a specially crafted project, or resource file. Aktualizacja zabezpieczeń usuwa tę lukę w zabezpieczeniach, poprawiając sposób sprawdzania źródłowej adiustacji pliku.The security update addresses the vulnerability by correcting how Visual Studio checks the source markup of a file.

CVE-2018-8260 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu w programie .NET FrameworkCVE-2018-8260 .NET Framework Remote Code Execution Vulnerability

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.A remote code execution vulnerability exists in .NET software that can lead to exploitation of a user's machine by allowing attackers to run arbitrary code in the context of the current user. Aktualizacja zabezpieczeń usuwa tę lukę w zabezpieczeniach, poprawiając sposób sprawdzania źródłowej adiustacji pliku na platformie .NET.The security update addresses the vulnerability by correcting how .NET checks the source markup of a file.

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

Luka w zabezpieczeniach polegająca na nieuprawnionej modyfikacji związana z nieprawidłową weryfikacją kodu przez program Microsoft Macro Assembler.Tampering vulnerability related to the Microsoft Macro Assembler improperly validating code. Aktualizacja zabezpieczeń usuwa tę lukę w zabezpieczeniach przez sprawdzenie, czy program Microsoft Macro Assembler prawidłowo weryfikuje logikę kodu.The security update addresses the vulnerability by ensuring that Microsoft Macro Assembler properly validates code logic.

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

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.An ASP.NET Core Security Feature Bypass Vulnerability exists when the number of incorrect login attempts is not validated that can lead to an attacker trying infinite authentication attempts. Aktualizacja usuwa tę lukę w zabezpieczeniach, weryfikując liczbę niepoprawnych prób logowania.The update addresses the vulnerability by validating the number of incorrect login attempts.

Visual Studio 2017 w wersji 15.8, wersja zapoznawcza 3 — wydane 26 czerwca 2018 r.Visual Studio 2017 version 15.8 Preview 3 -- released on June 26, 2018

CVE-2018-11235 Biuletyn zabezpieczeń firmy Microsoft dotyczący luk w zabezpieczeniach usługi GitCVE-2018-11235 Microsoft Security Advisory for Git Security Vulnerability

Usunęliśmy luki w zabezpieczeniach usługi Git, które zostały ujawnione przez społeczność Git.We fixed a security vulnerability in Git that was disclosed by the Git community. Luka w zabezpieczeniach może prowadzić do wykonania dowolnego kodu, gdy użytkownik sklonuje złośliwe repozytorium.The vulnerability can lead to arbitrary code execution when a user clones a malicious repository.

Visual Studio 2017 w wersji 15.8, wersja zapoznawcza 1 — wydane 8 maja 2018 r.Visual Studio 2017 version 15.8 Preview 1 -- released on May 08, 2018

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 CoreCVE-2018-0765 Microsoft Security Advisory for .NET Core Denial of Service Vulnerability

  • Firma Microsoft publikuje ten biuletyn zabezpieczeń, aby zapewnić informacje na temat luki w zabezpieczeniach platformy .NET Core i .NET Native w wersji 2.0.Microsoft is releasing this security advisory to provide information about a vulnerability in .NET Core and .NET native version 2.0. W tym biuletynie podano też wskazówki dla deweloperów dotyczące aktualizowania aplikacji w celu usunięcia tej luki w zabezpieczeniach.This advisory also provides guidance on what developers can do to update their applications to remove this vulnerability.
  • 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.Microsoft is aware of a denial of service vulnerability that exists when .NET Framework and .NET Core improperly process XML documents. Tę lukę w zabezpieczeniach może wykorzystać atakujący i spowodować odmowę usługi dla aplikacji .NET Framework, .NET Core lub .NET Native.An attacker who successfully exploited this vulnerability could cause a denial of service against a .NET Framework, .NET Core, or .NET native application.
  • Aktualizacja usuwa tę lukę w zabezpieczeniach, poprawiając obsługę przetwarzania dokumentów XML przez aplikacje .NET Framework, .NET Core i .NET Native.The update addresses the vulnerability by correcting how .NET Framework, .NET Core, and .NET native applications handle XML document processing.
  • W przypadku aplikacji ASP.NET Core deweloperom zaleca się również zaktualizowanie do platformy ASP.NET Core 2.0.8.If your application is an ASP.NET Core application, developers are also advised to update to ASP.NET Core 2.0.8.

Release Notes Icon Visual Studio 2017 w wersji 15.8.1Visual Studio 2017 version 15.8.1

wydane 17 sierpnia 2018 r.released on August 17, 2018

Najważniejsze problemy rozwiązane w wersji 15.8.1Top Issues Fixed in 15.8.1

Problemy rozwiązane w wersji 15.8.1:These are the issues addressed in 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.Fixed an issue where Visual Studio would close unexpectedly when a browser window was closed while debugging a Web project.

Release Notes Icon Visual Studio 2017, wersja 15.8.2Visual Studio 2017 version 15.8.2

wydana 28 sierpnia 2018 r.released on August 28, 2018

Najważniejsze problemy rozwiązane w wersji 15.8.2Top Issues Fixed in 15.8.2

Są to problemy zgłaszane przez klientów i rozwiązane w wersji 15.8.2:These are the customer-reported issues addressed in 15.8.2:


Release Notes Icon Visual Studio 2017 w wersji 15.8.3Visual Studio 2017 version 15.8.3

wydanej 6 września 2018 r.released on September 6, 2018

Najważniejsze problemy rozwiązane w wersji 15.8.3Top Issues Fixed in 15.8.3

Są to problemy zgłaszane przez klientów rozwiązane w wersji 15.8.3:These are the customer-reported issues addressed in 15.8.3:


Release Notes Icon Visual Studio 2017 w wersji 15.8.4Visual Studio 2017 version 15.8.4

wydanej 11 września 2018 r.released on September 11, 2018

Najważniejsze problemy rozwiązane w wersji 15.8.4Top Issues Fixed in 15.8.4

Są to problemy zgłaszane przez klientów rozwiązane w wersji 15.8.4:These are the customer-reported issues addressed in 15.8.4:

Powiadomienia o biuletynach zabezpieczeńSecurity Advisory Notices


Release Notes Icon Program Visual Studio 2017 w wersji 15.8.5Visual Studio 2017 version 15.8.5

wydany 20 września 2018 r.released on September 20, 2018

Podsumowanie nowości w wersji 15.8.5Summary of What's New in 15.8.5

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

Najważniejsze problemy rozwiązane w wersji 15.8.5Top Issues Fixed in 15.8.5

Są to problemy zgłaszane przez klientów rozwiązane w wersji 15.8.5:These are the customer-reported issues addressed in 15.8.5:

Szczegółowe informacje o nowościach w wersji 15.8.5Details of What's New in 15.8.5

Visual Studio Tools dla programu XamarinVisual Studio Tools for 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.Visual Studio Tools for Xamarin now supports Xcode 10 that allows you to build and debug apps for iOS 12, tvOS 12, and 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.See how to get ready for iOS 12 and our introduction to iOS 12 for more details on the new features available.


Release Notes Icon Program Visual Studio 2017 w wersji 15.8.6Visual Studio 2017 version 15.8.6

wydany 2 października 2018 r.released on October 02, 2018

Podsumowanie nowości w wersji 15.8.6Summary of What's New in 15.8.6

Najważniejsze problemy rozwiązane w wersji 15.8.6Top Issues Fixed in 15.8.6

Są to problemy zgłaszane przez klientów rozwiązane w wersji 15.8.6:These are the customer-reported issues addressed in 15.8.6:

Szczegółowe informacje o nowościach w wersji 15.8.6Details of What's New in 15.8.6

Najnowszy zestaw Windows 10 SDK dla deweloperów platformy uniwersalnej systemu WindowsLatest Windows 10 SDK for Universal Windows Platform developers

Najnowszy zestaw Windows 10 SDK (kompilacja 17763) jest teraz dostępny jako składnik opcjonalny w obciążeniu programowania dla platformy uniwersalnej systemu Windows.The latest Windows 10 SDK (build 17763) is now available as an optional component for the Universal Windows Platform development workload. Można dodać ten zestaw SDK do obciążenia, zaznaczając pole wyboru Windows 10 SDK (10.0.17763.0) .You can add this SDK to the workload by selecting the Windows 10 SDK (10.0.17763.0) checkbox.


Release Notes Icon Visual Studio 2017, wersja 15.8.7Visual Studio 2017 version 15.8.7

wydana 10 października 2018 r.released on October 10, 2018

Co nowego w wersji 15.8.7What's New in 15.8.7

Azure DevOpsAzure DevOps

Usługa Visual Studio Team Services zmieniła nazwę na Azure DevOps!Visual Studio Team Services is now Azure DevOps! Nowa nazwa będzie widoczna we wtyczce Team Explorer i w odwołaniach w całym programie Visual Studio.You will see this new branding in Team Explorer and in references across Visual Studio.

Powiadomienia o biuletynach zabezpieczeńSecurity Advisory Notices

CVE-2018-8292 Luka w zabezpieczeniach platformy .NET Core umożliwiająca ujawnienie informacjiCVE-2018-8292 .NET Core Information Disclosure Vulnerability


Release Notes Icon Visual Studio 2017, wersja 15.8.8Visual Studio 2017 version 15.8.8

wydana 24 października 2018 r.released on October 24, 2018

Najważniejsze problemy rozwiązane w wersji 15.8.8Top Issues Fixed in 15.8.8

Są to problemy zgłaszane przez klientów, rozwiązane w wersji 15.8.8:These are the customer-reported issues addressed in 15.8.8:


Release Notes Icon Visual Studio 2017, wersja 15.8.9Visual Studio 2017 version 15.8.9

wydana 2 listopada 2018 r.released on November 2, 2018

Najważniejsze problemy rozwiązane w wersji 15.8.9Top Issues Fixed in 15.8.9

Są to problemy zgłaszane przez klientów i rozwiązane w wersji 15.8.9:These are the customer-reported issues addressed in 15.8.9:


Znane problemyKnown Issues

Zobacz wszystkie znane problemy w programie Visual Studio 2017 w wersji 15.8 i dostępne dla nich obejścia.See all existing known issues and available workarounds in Visual Studio 2017 version 15.8.

Visual Studio 2017 Known Issues Visual Studio 2017 Known Issues


OpiniaFeedback

Chcemy poznać Twoją opinię!We would love to hear from you! 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.For issues, let us know through the Report a Problem option in the upper right-hand corner of either the installer or the Visual Studio IDE itself. ProgramThe Feedback Icon znajduje się w prawym górnym rogu.icon is located in the upper right-hand corner. 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.You can make a product suggestion or track your issues in the Visual Studio Developer Community, where you can ask questions, find answers, and propose new features. Możesz też uzyskać bezpłatną pomoc dotyczącą instalacji za pośrednictwem naszej pomocy technicznej przez czat na żywo.You can also get free installation help through our Live Chat support.


BlogiBlogs

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.Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.

Developer Tools Blogs


Historia informacji o wersji programu Visual Studio 2017Visual Studio 2017 Release Notes History

Więcej informacji na temat poprzednich wersji programu Visual Studio 2017 można znaleźć na stronie Historia informacji o wersji programu Visual Studio 2017.For more information relating to past versions of Visual Studio 2017, see the Visual Studio 2017 Release Notes History page.


Początek strony
Top of Page