Informacje o wersji 15.8 programu Visual Studio 2017
Społeczność deweloperów | Wymagania systemowe | Zgodność | Kod dystrybucyjny | Postanowienia licencyjne | Blogi | Znane problemy
Uwaga
To nie jest najnowsza wersja programu Visual Studio. Aby pobrać najnowszą wersję, odwiedź witrynę programu Visual Studio .
Ramy czasowe pomocy technicznej
Ta wersja nie jest już obsługiwana. Aby uzyskać więcej informacji na temat obsługi programu Visual Studio, zapoznaj się z zasadami pomocy technicznej dla programu Visual Studio 2017.
Zapoznaj się z najnowszą wersją informacji o wersji lub odwiedź witrynę programu Visual Studio , aby pobrać najnowszą obsługiwaną wersję programu Visual Studio 2017.
Visual Studio Blog
Blog dotyczący programu Visual Studio to oficjalne źródło informacji o produkcie pochodzących od zespołu inżynierów ds. programu Visual Studio. Szczegółowe informacje na temat wydań programu Visual Studio 2017 w wersji 15.8 można znaleźć w następujących wpisach:
- Visual Studio 2017 w wersji 15.8 -- Przeczytaj najnowszy wpis w blogu!
Wydania wersji 15.8 programu Visual Studio 2017
- 2 listopada 2018 r. — aktualizacja obsługi programu Visual Studio 2017 w wersji 15.8.9
- 24 października 2018 r. — aktualizacja obsługi programu Visual Studio 2017 w wersji 15.8.8
- 10 października 2018 r. — aktualizacja obsługi programu Visual Studio 2017 w wersji 15.8.7
- 2 października 2018 r. — aktualizacja obsługi programu Visual Studio 2017 w wersji 15.8.6
- 20 września 2018 r. — aktualizacja obsługi programu Visual Studio 2017 w wersji 15.8.5
- 11 września 2018 r. — aktualizacja obsługi programu Visual Studio 2017 w wersji 15.8.4
- 6 września 2018 r. — aktualizacja obsługi programu Visual Studio 2017 w wersji 15.8.3
- 28 sierpnia 2018 r. — aktualizacja obsługi programu Visual Studio 2017 w wersji 15.8.2
- 17 sierpnia 2018 r. — aktualizacja obsługi programu Visual Studio 2017 w wersji 15.8.1
- 14 sierpnia 2018 r. — wydanie pomocnicze programu Visual Studio 2017 w wersji 15.8
Ważne
Powiadomienie o biuletynie zabezpieczeń programu Visual Studio 2017 w wersji 15.8
- 10 października 2018 r. — aktualizacja obsługi programu Visual Studio 2017 w wersji 15.8.7
- 11 września 2018 r. — aktualizacja obsługi programu Visual Studio 2017 w wersji 15.8.4
- 14 sierpnia 2018 r. — Visual Studio 2017 w wersji 15.8
- 10 lipca 2018 r. — Visual Studio 2017 w wersji 15.8, wersja zapoznawcza 4
- 26 czerwca 2018 r. — Visual Studio 2017 w wersji 15.8, wersja zapoznawcza 3
- 8 maja 2018 r. — Visual Studio 2017 w wersji 15.8, wersja zapoznawcza 1
Podsumowanie istotnych nowych funkcji w wersji 15.8
- Instalator oferuje teraz możliwość pobrania wszystkich plików przed rozpoczęciem instalacji.
- Poprawiliśmy wydajność podczas zwalniania/ponownego ładowania projektu i przełączania gałęzi.
- Czas ładowania rozwiązania można skrócić dzięki wyłączeniu automatycznego przywracania dokumentów.
- Wprowadziliśmy znaczące ulepszenia wydajności testów podczas uruchamiania dużych rozwiązań z użyciem wielu projektów testowych.
- Język Visual Basic zapewnia teraz znaczną poprawę wydajności.
- Profilowanie wydajności oferuje teraz możliwość wstrzymywania/wznawiania zbierania danych. Dodano także nowe narzędzie Śledzenie przydzielania obiektów .NET.
- Wprowadziliśmy ulepszenia narzędzia Użycie procesora CPU dla profilowania wydajności.
- Dodaliśmy nowe funkcje produktywności, takie jak oczyszczanie kodu, refaktoryzacja invert-if, przechodzenie do otaczającego bloku, obsługa wielu karetek i nowe profile klawiatury.
- Możliwość wyboru docelowego wystąpienia podczas debugowania rozszerzeń.
- Uruchamianie narzędzia Snapshot Debugger bezpośrednio ze strony Podsumowanie publikowania.
- Wprowadziliśmy język F# 4.5, nową wersję języka, która w pełni obsługuje
Span<'T>
i zawiera znaczące ulepszenia śledzenia stosu dla kodu asynchronicznego. - Poprawiliśmy wydajność i dodaliśmy nowe funkcje w narzędziach języka F# , takich jak Ctrl+Kliknij , aby przejść do definicji.
- Rozszerzenia zestawu narzędzi języka C++ obejmują ulepszenia optymalizatora architektury SSA i konsolidatora.
- Dodatki do programowania dla wielu platform przy użyciu języka C++ obejmują aktualizacje narzędzia ClangFormat oraz szablony konfiguracji w narzędziach CMake i Otwórz folder dla środowisk MinGW, Linux i Windows.
- Zmiany w funkcjach produktywności języka C++ obejmują funkcję IntelliSense szablonów, etykietki Szybka podpowiedź w makrach, ikony żarówki dla konwersji na constexpr, zygzaki analizy kodu w edytorze i nie tylko.
- Ulepszenia debugowania dla języka C++ obejmują aktualizacje opcji Tylko mój kod i nowe punkty przerwania danych.
- Wprowadziliśmy wiele usprawnień i nowych funkcji dla języków JavaScript i TypeScript.
- Możesz teraz zarządzać bibliotekami po stronie klienta w swoich projektach internetowych.
- Dodaliśmy nowe środowisko kontenera platformy Docker pojedynczego projektu dla projektów internetowych platformy ASP.NET Core.
- Możesz teraz dostosować tag obrazu platformy Docker przy użyciu ulepszeń publikowania wprowadzonych w tej wersji.
- Ulepszenia platformy Xamarin obejmują obsługę programu Xcode 9.4 i inteligentniejsze kompilacje przyrostowe systemu Android.
- Możesz używać emulatora systemu Google Android razem z funkcją Hyper-V w aktualizacji systemu Windows 10 z kwietnia 2018 r.
- Dodaliśmy edytor z widokiem podzielonym dla projektanta platformy Xamarin.Android.
- Program podglądu elementów Xamarin.Forms ma teraz obsługę przybornika i przenieśliśmy go do edytora widoku złożonego.
- Teraz możesz używać debugowania w wielu językach przy użyciu języka Python 3.7.0rc1.
- Migrowanie lokalnych ustawień usługi Azure Functions na platformę Azure teraz wyświetla nowe wartości.
- Dzięki dodaniu obsługi usługi Azure Functions masz teraz nowy host docelowy w oknie dialogowym Konfigurowanie ciągłego dostarczania do platformy Azure.
- Ulepszenie okienka Podsumowanie Eksploratora testów zapewnia teraz więcej informacji o stanie testu.
- Rozszerzenia adaptera testowego platformy .NET: zmiana powodująca niezgodność i wycofanie.
- Dodaliśmy natywną obsługę protokołu Language Server Protocol.
- Masz teraz obsługę wpisów tajnych dla projektów .NET Framework platformy ASP.NET.
- Program Visual Studio pomaga teraz uaktualniać aplikacje .NET Framework platformy ASP.NET, aby zwiększyć wydajność kompilacji.
- Program Visual Studio oferuje teraz narzędzia programistyczne .NET Framework 4.7.2 na obsługiwanych platformach z dołączonym środowiskiem uruchomieniowym w wersji 4.7.2.
- Asynchroniczne pakiety automatycznego ładowania są opóźnione do momentu ukończenia uruchamiania i ładowania rozwiązania.
- Program Build Tools Visual Studio 2017 obsługuje teraz przepływ pracy i zawiera narzędzia VSSDK.
- Stan usług Git i TFS jest teraz poprawnie aktualizowany dla zmian zewnętrznych plików w projektach .NET Core.
- Zestaw .NET Core SDK 2.1.400 jest dołączony.
Najważniejsze problemy rozwiązane w wersji 15.8
Są to problemy zgłaszane przez klientów rozwiązane w wersji 15.8:
- Programu SSDT nie ma w narzędziach Visual Studio Build Tools 2017.
- Nie można odinstalować programu Anaconda podczas uaktualniania (błąd 87).
- Uaktualnienie do wersji 15.7 generuje błąd: PackageId:Anaconda3.Exe.x64;PackageAction:Uninstall;ReturnCode:87;.
- Aktualizacja programu Visual Studio generuje błędy UWP BuildError at MakePri 0x80073b0f and 0xdef00532 w moim rozwiązaniu.
- Program VS 2017 ma problemy z funkcją eksportowania szablonu platformy ASP.NET Core.
- Eksplorator testów (testy SpecFlow): przechodzi do pliku klasy funkcji, a nie pliku funkcji.
- Szablon projektu wyeksportowany z projektu w języku C++ zawiera tylko pliki vcxproj i vcxproj.filters, nie zawiera źródła ani nagłówków.
- Nieprawidłowe generowanie kodu na platformie x64.
- Kliknięcie prawym przyciskiem myszy menu kontekstowego dla folderu rozwiązania nie działa w wersji Enterprise 15.8 (wersja zapoznawcza 2).
- Program VS2017 nie zapamiętuje położenia i rozmiaru ekranu do używania na 3 monitorach.
- Kodowanie UTF8-no-BOM powoduje, że okno różnicowe wyświetla ostrzeżenie o błędnym kodowaniu.
- Dwukrotne kliknięcie wyrazu powoduje zaznaczenie tylko do początku wyrazu, a nie całego wyrazu.
- Programy VS2015 i VS2017 tworzą pusty folder Debug w ścieżce zdefiniowanej przez $(SolutionDir), pomimo że $(OutDir) i $(IntDir) używają całkowicie różnych ustawień.
- W przypadku utworzenia projektu MFC opartego na oknie dialogowym w środowisku japońskim przy użyciu programu VS2017 edytowanie okna dialogowego spowoduje błędy w kompilacji.
- Wyświetlanie tekstu dotyczącego postępu pobierania w Instalatorze programu Visual Studio.
- Kliknij prawym przyciskiem myszy projekt wykonywalny w Eksplorator rozwiązań —> Debuguj —> uruchom nowe wystąpienie wybiera losowy projekt z rozwiązania do uruchomienia.
- Kompilacja wiersza polecenia DEVENV kończy się niepowodzeniem: ta operacja może występować tylko w wątku interfejsu użytkownika.
- Funkcja Znajdź i zamień zapamiętuje typy plików.
- Komunikaty o błędach są nieczytelne w konsoli menedżera pakietów ze względu na kolor czcionki i kolor tła.
- Publikowanie internetowe (wersja zapoznawcza) programu Visual Studio Community 2017 15.4.1 kończy się niepowodzeniem z powodu braku autoryzacji.
- Otwieranie wyników testów w programie VS 2017 dla kompilacji XAML.
Zobacz wszystkie problemy zgłaszane przez klientów, które zostały rozwiązane w programie Visual Studio 2017 w wersji 15.8.
Szczegóły nowości w wersji 15.8
Visual Studio 2017 w wersji 15.8.0
wydana 14 sierpnia 2018 r.
Nowe funkcje w wersji 15.8
Instalowanie
Masz teraz możliwość pobierania wszystkich plików instalacyjnych przed rozpoczęciem instalacji.
- Aby użyć tej nowej opcji, wybierz pozycję „Pobierz wszystko, a następnie zainstaluj” w Instalatorze (Rysunek 1). Zalecamy skorzystanie z tej opcji w przypadku posiadania wolniejszego połączenia internetowego.
- Domyślną opcją pozostaje „Zainstaluj podczas pobierania”, w przypadku której pobieranie i instalowanie zachodzi równolegle.
Wydajność
Ta wersja zawiera następujące ulepszenia dotyczące wydajności:
- Przełączanie między gałęziami w projektach C#, VB i C++ jest znacznie szybsze w przypadku dużych rozwiązań, ponieważ ponowne załadowanie rozwiązania nie jest już wymagane.
- Skróciliśmy czas zwolnienia i ponownego załadowania niewielkiego zestawu projektów C# i VB w dużych rozwiązaniach z kilku minut do kilku sekund.
- Dodaliśmy możliwość wyłączenia funkcji ponownego otwierania dokumentów, które były otwarte w poprzedniej sesji, ponieważ ponowne otwieranie niektórych typów plików lub projektantów może opóźnić ładowanie rozwiązania.
- Tę opcję można przełączyć w obszarze Narzędzia > Opcje > Projekty > Rozwiązania > Ogólne.
Wydajność testu
Znacznie zwiększyliśmy wydajności podczas wykonywania kilku testów w dużym rozwiązaniu z użyciem wielu projektów testowych. W naszych laboratoriach w przypadku rozwiązania mającego ponad 10 000 testów MSTest pojedynczy test był wykonywany do 82% szybciej!
Poprawa wydajności języka Visual Basic
Konwersja typów innych niż liczby całkowite do liczb całkowitych za pomocą wzorca CInt(Fix(number))
w języku Visual Basic przebiega teraz ze znacznie większą wydajnością.
Profilowanie wydajności
Ta wersja zawiera następujące rozszerzenia dotyczące profilowania wydajności:
Dodaliśmy możliwość uruchomienia profilowania w stanie wstrzymania:
Narzędzie Użycie procesora CPU w profilerze wydajności (ALT-F2) można teraz uruchomić w stanie wstrzymania (Rysunek 2). Może to być przydatne podczas czekania na odpowiedni scenariusz do przebadania użycia procesora CPU. Jeśli kolekcja użycia procesora CPU jest wyłączona przy uruchomieniu, profiler wydajności nie będzie gromadził żadnych danych użycia procesora CPU z przykładowego stosu do czasu specjalnego włączenia profilera. Dzięki temu ilość danych wynikowych do zbierania i analizowania jest znacznie mniejsza, co przyczynia się do poprawy wydajności badania.
Aby rozpocząć sesję z wyłączoną przykładową kolekcją narzędzia Użycie procesora CPU, kliknij ikonę koła zębatego obok pozycji Użycie procesora CPU na stronie uruchamiania profilera wydajności. Na stronie właściwości narzędzia Użycie procesora CPU usuń zaznaczenie pola wyboru Włącz profilowanie procesora CPU (próbkowanie) i kliknij przycisk OK, aby zapisać ustawienia.
Po uruchomieniu aplikacji docelowej (kliknij pozycję Uruchom na stronie uruchamiania profilera wydajności) zostanie wyświetlony wykres wykorzystania procesora CPU (Rysunek 3), który umożliwia sterowanie profilowaniem procesora CPU. Aby włączyć zbieranie danych użycia procesora CPU z przykładowego stosu, wybierz pozycję Włącz profilowanie procesora CPU w środku widoku lub kliknij pozycję Rejestruj profil procesora CPU znajdującą się tuż poniżej wykresu wykorzystania procesora CPU. Pozycję Rejestruj profil procesora CPU możesz klikać dowolną liczbę razy, aby włączać/wyłączać zbieranie przykładowych danych. Kolor wykresu wykorzystania procesora CPU zmienia się, aby wskazać, czy zbieranie przykładowych danych jest w danym momencie włączone, czy wyłączone.
Dodaliśmy narzędzie Śledzenie przydzielania obiektów .NET:
- Śledzenie przydzielania obiektów .NET to jeszcze jedno narzędzie dostępne z poziomu profilera wydajności. Wywołanie tego narzędzia w sesji profilera wydajności inicjuje zbieranie śladu stosu dla każdego przydziału obiektu .NET występującego w aplikacji docelowej. Te dane stosu są analizowane wraz z informacjami o typie i rozmiarze obiektu w celu wyodrębnienia szczegółów dotyczących aktywności pamięci aplikacji. Dzięki temu możesz szybko ustalić wzorce alokacji w kodzie oraz zidentyfikować anomalie. Ponadto w przypadku zdarzeń odzyskiwania pamięci (GC) można z łatwością ustalić, które obiekty zostały zebrane i zachowane oraz szybko określić typy obiektów, które najbardziej wykorzystują pamięć aplikacji.
- Jest to szczególnie przydatne dla autorów interfejsu API, ponieważ umożliwia zminimalizowanie alokacji. Wiele aplikacji będzie przekraczać limity buforu określone dla zbierania danych diagnostycznych, ale niewielkie aplikacje testowe wykorzystujące kluczowe scenariusze interfejsu API będą mogły zostać całkiem dobrze przetestowane. Podczas wykonywania aplikacji testowej profiler wydajności wyświetla wykres liniowy aktywnych obiektów (licznik) oraz wykres słupkowy różnicy obiektu (zmiany w %).
- Aby użyć narzędzia Śledzenie przydzielania obiektów .NET, wyświetl stronę uruchamiania profilera wydajności (Rysunek 4), wybierz element docelowy profilowania (domyślny element docelowy jest projektem startowym w rozwiązaniu), zaznacz narzędzie Śledzenie przydzielania obiektów .NET w obszarze Dostępne narzędzia i kliknij przycisk Uruchom.
Profilowanie wydajności (użycie procesora CPU)
Ta wersja zawiera następujące ulepszenia narzędzia Użycie procesora CPU profilera wydajności (dostępnego po naciśnięciu klawiszy ALT-F2):
- W widoku drzewa wywołań domyślnie wyświetlane jest teraz asynchroniczne wykonanie według stosu wywołań logicznych. To zachowanie można wyłączyć, usuwając zaznaczenie opcji Połącz kod asynchroniczny w menu rozwijanym Filtr w widoku głównym narzędzia Użycie procesora CPU.
- Dodaliśmy widok modułów/funkcji, w którym są wyświetlane informacje o wydajności według modułu (dll) i według funkcji w module. Widok modułów/funkcji można wyświetlić za pomocą menu kontekstowego, które jest dostępne po wybraniu funkcji w widoku głównym narzędzia Użycie procesora CPU, lub za pomocą listy rozwijanej Widok w widoku drzewa wywołań lub elementu wywołującego/wywoływanego.
- W widoku głównym narzędzia Użycie procesora CPU do wykresu użycia procesora CPU dodano opcję „oznaczenia wystąpienia”. Wystąpienia można wyświetlić podczas wykonywania funkcji (na przykład na stosie), klikając dwukrotnie funkcję wymienioną w dowolnym widoku narzędzia Użycie procesora CPU.
Produktywność
Ta wersja zawiera następujące ulepszenia dotyczące produktywności:
- W przypadku tworzenia aplikacji w języku C# możesz wykonać dodatkowe oczyszczanie kodu za pomocą polecenia Formatuj dokument (Ctrl + K, D lub Ctrl + E, D). Oczyszczanie można skonfigurować, przechodząc do pozycji Narzędzia>Opcje>Edytor tekstów>C#>Styl kodu>Formatowanie>Ogólne.
- Dodaliśmy więcej refaktoryzacji i szybkich akcji za pomocą kombinacji Ctrl + . lub Alt + Enter:
- Funkcja Odwróć instrukcję If umożliwia odwrócenie logiki w instrukcjach if-else. Umieść kursor w słowie kluczowym
if
, aby wyzwolić tę refaktoryzację. - Funkcja Dodaj parametr z miejsca wywołania metody pozwala dodać parametr do metody przez dodanie argumentu do miejsca wywołania metody i wyzwolenie usługi Szybkie akcje i operacje refaktoryzacji.
- Funkcja Usuń niepotrzebne nawiasy usuwa nawiasy wokół operatorów binarnych, które nie są istotne dla kompilacji. Tę regułę stylu można skonfigurować za pomocą opcji Narzędzia>Edytor>>tekstu C#>Styl>kodu Ogólne lub .editorconfig:
dotnet_style_parentheses_in_arithmetic_binary_operators
dotnet_style_parentheses_in_relational_binary_operators
dotnet_style_parentheses_in_other_binary_operators
dotnet_style_parentheses_in_other_operators
- Użyjternary warunkowe w przypisań i instrukcji zwrotnych można również skonfigurować jako regułę stylu w Opcje> narzędzi>... lub za pomocą pliku editorconfig:
dotnet_style_prefer_conditional_expression_over_assignment
dotnet_style_prefer_conditional_expression_over_return
- Funkcja Odwróć instrukcję If umożliwia odwrócenie logiki w instrukcjach if-else. Umieść kursor w słowie kluczowym
- Dodaliśmy nowe polecenia i ulepszenia okna Przejdź do wszystkich :
- Funkcja Przejdź do otaczającego bloku (Ctrl + Alt + Strzałka w górę) pozwala na szybkie przechodzenie do początku otaczającego bloku kodu.
- Funkcja Przejdź do następnego/poprzedniego problemu (Alt + PgUp/PgDn) pozwala przejść do następnego/poprzedniego problemu (błędu, zygzaka, żarówki).
- Funkcja Przejdź do elementu członkowskiego (Ctrl + T, M) ma teraz zakres domyślnie ograniczony do pliku. To zachowanie domyślne można przełączyć z powrotem na rozwiązanie, przełączając opcję Ustaw zakres na bieżący dokument (Ctrl + Alt + C).
- Dzięki obsłudze wielu kursorów możesz teraz tworzyć punkty wstawiania i zaznaczenia w wielu dowolnych miejscach w pliku. Umożliwia to jednoczesne dodawanie, edytowanie i usuwanie tekstu w wielu miejscach.
- Kursory można wstawiać za pomocą kombinacji Ctrl + Alt + kliknięcie lewym przyciskiem myszy.
- Naciskając klawisze Shift + Alt + Ins, możesz dodawać zaznaczenie i kursor w następnej lokalizacji zgodnej z bieżącym zaznaczeniem.
- Pełną listę akcji można wyświetlić, wybierając pozycję Edytuj > Wiele kursorów.
- Dostęp do kontekstowego menu nawigacji można uzyskać, naciskając klawisze Alt + `.
- Zachowaj zgodność swoich powiązań klawiszy z dwoma nowymi profilami klawiatury: Visual Studio Code i ReSharper (Visual Studio). Te schematy można znaleźć, przechodząc do obszaru Narzędzia > Opcje > Środowisko > Klawiatura i używając menu rozwijanego u góry ekranu.
Debugowanie
Ta wersja zawiera następujące ulepszenia dotyczące debugowania:
Jeśli zainstalowano więcej niż jedno wystąpienie programu Visual Studio 2017, można teraz wybrać wystąpienie do wdrożenia rozszerzenia podczas debugowania (Rysunek 5). W ten sposób można na przykład wdrażać w kanale wydania programu Visual Studio podczas debugowania w kanale w wersji zapoznawczej.
Teraz można dołączyć narzędzie Snapshot Debugger bezpośrednio ze strony podsumowania publikowania (Rysunek 6).
Teraz obsługujemy wyświetlanie zadań zarządzanych za pośrednictwem okna Zadania podczas debugowania minizrzutów ze stertą.
Narzędzia dla deweloperów platforma uniwersalna systemu Windows
Wprowadziliśmy wiele ważnych ulepszeń projektanta XAML dla projektów przeznaczonych dla platformy uniwersalnej systemu Windows, gdzie docelową wersją platformy jest system Windows 10 Fall Creators Update (kompilacja 16299) lub nowszy. Te ulepszenia są następujące:
- Kolekcje można teraz edytować w obszarze Inspektor właściwości.
- Projektant umożliwia teraz edytowanie szablonów i stylów, w tym w sytuacji, w której definicje tych jednostek są definiowane w innych dokumentach.
- Właściwości typu IconElement (np. ikona w elemencie AppBarButton) mają teraz edytora niestandardowego w Inspektorze właściwości, dzięki czemu można je łatwo ustawić.
- Projektant, edytor oraz funkcja Edytuj i Kontynuuj powinny teraz prawidłowo współpracować z atrybutem x:DefaultBindMode.
- Środowisko Visual State Manager w programie Blend obsługuje teraz wyzwalacz AdaptiveTrigger.
Narzędzia F# 4.5 i F# Tools for Visual Studio
W tej wersji wprowadziliśmy język F# w wersji 4.5. Odpowiada to również nowej rodzinie 4.5.x biblioteki FSharp.Core (podstawowej biblioteki języka F#). Specyfikacje dla każdego z tych zmian można odczytać w repozytorium RFC języka F#. Istnieje również wiele ulepszeń narzędzi języka F# dla programu Visual Studio w tej wersji.
F# 4.5
Oto niektóre najważniejsze informacje dotyczące języka F# w wersji 4.5:
Obsługa funkcji Span'T<>
Zaimplementowaliśmy Span<'T>
i powiązane funkcje, aby efektywne użycie i produkcja interfejsów API przy użyciu konstrukcji , Memory
i ref
-like były możliwe w Span
języku F#. Funkcje to m.in.:
- Nowy typ
voidptr
. - Nowe funkcje
NativePtr.ofVoidPtr
iNativePtr.toVoidPtr
w bibliotece FSharp.Core. - Nowe typy
inref<'T>
ioutref<'T>
, które są odpowiednio typami byref tylko do odczytu i typami byref tylko do zapisu. Odpowiada to typomin ref
iout ref
w języku C#. - Możliwość tworzenia struktur
ByRefLike
(takich jakSpan
iReadOnlySpan
). - Możliwość tworzenia struktur
IsReadOnly
. - Niejawne wyłuskania funkcji
byref
- iinref
-return z metod. - Możliwość tworzenia elementów członkowskich rozszerzeń w elemencie
byref
/inref
/outref
.
Ten zestaw funkcji naprawia usterkę w początkowym projekcie parametru byref
-return w języku F# 4.1, gdzie funkcje, metody i właściwości zwracające byref
wartość nie były niejawnie wyłuszające wartość zwracaną. Wprowadzamy tę zmianę, aby funkcja działa zgodnie z zasadami obsługi funkcji ref
-return w języku C#. Jeśli adnotacja typu wskazuje, że jest obecnie używane niejawne wyłuskanie funkcji ref
-return, jest wyświetlany komunikat o błędzie.
Ponadto ten zestaw funkcji naprawia również usterkę w kompilatorze języka F#, w którym możliwe było zastąpienie struktury zła; tj. wywołanie metody w strukturę języka F# może zastąpić rzeczywistą strukturę, która została wywołana za pomocą innej. Parametr this
w strukturze jest teraz traktowany jako element inref<MyStruct>
z komunikatem o błędzie sugerującym dodanie pola modyfikowalnego w przypadku zmodyfikowania struktury.
Więcej informacji na temat konstrukcji typu span
i ref
można znaleźć w dokumencie RFC dotyczącym tego zestawu funkcji.
Zapałka! w wyrażeniach obliczeniowych
W języku F# 4.5 wprowadzono match!
, nowe słowo kluczowe do użycia w wyrażeniach obliczeniowych, w całości opracowane przez Johna Wostenberga. Ten lukier składniowy jest odpowiednikiem elementu let!
z następującym po nim elemencie match
w wyniku. Więcej informacji można znaleźć w dokumencie RFC dotyczącym słowa kluczowego match!
.
Eliminowanie potrzeby przypisania elementu nadrzędnego przy użyciu instrukcji yield
w wyrażeniach sekwencji, listy i tablicy
Język F# 4.5 teraz zrelaksuje niektóre przypadki, w których emisja upcast podczas używania yield
była wymagana do przekonwertowania podtypu na supertyp. To ograniczenie nie było już konieczne dla tych wyrażeń, ponieważ język F# 3.1 nie jest używanyyield
, więc sprawia to, że elementy są bardziej spójne z istniejącym zachowaniem. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.
Dopuszczanie wcięcia w nawiasach na liście i w tablicy
Język F# 4.5 teraz zrelaksuje regułę wcięcia dla nawiasów list i tablic, które wymagały, aby były wcięcie jednego zakresu do przodu, gdy znajdują się one we własnym wierszu. To poprzednie wymaganie zawsze było dość mylące, zwłaszcza dla początkujących w języku F#. Ponadto nie jest wymagane w przypadku wyrażeń sekwencji języka F#. Obecnie powoduje ona, że stan wyrażeń tablicy i listy jest spójny, tak jak w przypadku wyrażeń sekwencji. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.
Przypadki wyliczenia emitowane jako publiczne
Język F# 4.5 emituje teraz przypadki wyliczenia jako publiczne we wszystkich okolicznościach, aby dopasować je do sposobu, w jaki język C# emituje przypadki wyliczenia. Ułatwia to również profilowanie narzędzi do analizowania dzienników z kodu języka F#, gdzie emitowana była wartość zamiast nazwy etykiety. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.
Ulepszenia kompilatora języka F#
Ulepszenia kompilatora języka F# oprócz wymienionych wcześniej funkcji językowych znajdują się w języku F# 4.5. Są to:
- Poprawiliśmy wydajność kompilatora, usuwając do 2,2% wszystkich alokacji w kompilatorze języka F# (w różnych scenariuszach).
- Naprawiliśmy usterkę powodującą wyjątek
AccessViolatioNException
w przypadku używania elementuyield!
z elementami wyliczalnymi opartymi na strukturze. - Obecnie istnieje ponownie możliwość dziedziczenia z funkcji
FSharpFunc
. - Wywołania tail są domyślnie wyłączone dla kompilacji debugowania języka F# dla platformy .NET Core. Są one włączone do wydania, dlatego pasują do kompilatora języka F# dla komputerów stacjonarnych.
- Naprawiono normalizację odwołań języka F#, aby umożliwić kontrolowanie odwołań zestawów przechodnich zapisanych w pliku wyjściowym. Dzięki temu można przeprowadzić odpowiednik przekierowania zestawów na platformie .NET Core.
- Naprawiliśmy usterkę polegającą na tym, że komunikat o błędzie wyświetlany podczas próby używania wywołania dynamicznego w funkcjach śródwierszowych był ignorowany. Obecnie następuje wypełnienie komunikatu o błędzie.
- Język F# uwzględnia teraz flagę
WarningsNotAsErrors
, którą można ustawić w plikach projektu. - Gdy gałęzie wzorca nie zwracają tego samego typu, komunikat o błędzie został zaktualizowany do bardziej przyjaznej postaci (autor: Isaac Abraham).
- Naprawiono usterkę polegającą na tym, że podczas kompilowania implementacji interfejsu bez implementacji metody przeciążonej występował błąd wewnętrzny (autor: Steffen Forkmann).
- Usunięto niektóre niepotrzebne operacje kopiowania tablicy w fazie analizy leksykalnej kompilatora (autor: Gauthier Segay).
- Niekompletne dopasowania wzorca w wyliczeniach języka F# generują teraz szczegółowe ostrzeżenie, które daje przykład nieuwzroczonego przypadku( współautor John Wostenberg).
- Opcja #nowarn „2003” jest obecnie uwzględniana (autor: Matthias Diitrich).
- Usunięto usterkę polegającą na tym, że korzystanie z metod rozszerzeń języka C# mogło zakończyć się niepowodzeniem w rozwiązywaniu przeciążeń języka F# przez Steffena Forkmanna.
- Naprawiono wewnętrzny błąd struktury danych QueueList (autor: Steffen Forkmann).
- Wprowadzono różne mniejsze optymalizacje i operacje czyszczenia kodu (autorzy: Steffen Forkmann, Eugene Auduchinok i ncave).
Podstawowa biblioteka języka F# 4.5.x
Dostępne są teraz następujące dodatki do biblioteki podstawowej języka F#:
- Wykonano wiele pracy w celu ulepszenia śladów stosu dla wyrażeń obliczeń
async { }
. W śladach stosu powinien być teraz widoczny kod użytkownika i numery wierszy użytkownika. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji. - Interfejsy API
FuncConvert.FromFunc
iFuncConvert.FromAction
z przeciążeniami typuSystem.Func
iSystem.Action
, które ułatwiają współdziałanie z językiem C#. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji. ValueOption
to nowy dostępny typ — pierwszy w zestawie przyszłych funkcji, który ma na celu zwiększenie wydajności aktywnych wzorców. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.TryGetValue
jest teraz nowym elementem członkowskim w typie mapy języka F#. Więcej informacji można znaleźć w dokumencie RFC dotyczącym tej funkcji.- Naprawiliśmy wysokie użycie procesora przy pierwszym wywołaniu elementu
MailboxProcessor.TryReceive
. - Porównanie dla elementu
bool
teraz używa szybkiego porównania rodzajowego (autor: Vasily Kirichenko). - Tekst podsumowania elementu
Array.allPairs
został zaktualizowany i jest teraz poprawny (autor: Patrick McDonald).
Ulepszenia narzędzi języka F#
W tej wersji uwzględniono znaczące ulepszenia narzędzi języka F#, takie jak ulepszenia wydajności i niektóre nowe funkcje edytora. Tak jak zawsze, z dużą liczbą wkładów ze społeczności open source języka F#. Poniżej przedstawiono najważniejsze nowości:
- Poprawiliśmy wydajność funkcji IntelliSense dla projektów wszystkich formularzy w stylu zestawu SDK platformy .NET, w tym tych, które korzystają z wielowersyjności kodu.
- Wspólna praca społeczności mająca na celu przeanalizowanie i ulepszenie wydajności funkcji IntelliSense dla bardzo dużych plików (autorzy: Vasily Kirichenko, Steffen Forkmann i Gauthier Segay). Funkcja IntelliSense w bardzo dużych plikach (z ponad 10 000 wierszami kodu) działa teraz około dwa razy szybciej.
- Ostrzeżenie dotyczące nieaktualnej biblioteki FSharp.Core (bez względu na instalowanie pakietu) nie jest już obecne w projektach w stylu zestawu SDK platformy .NET.
- Limit czasu etykietki narzędzia opisu, która wyświetla dokumentację XML dla elementu członkowskiego po
.
w funkcji IntelliSense, nie upływa już po 10 sekundach. - Naprawiono usterkę polegającą na tym, że nie można było ustawić punktów przerwania w argumentach konstruktora obiektu.
- Naprawiono usterkę polegającą na tym, że symbol o zmienionej nazwie był duplikowany w przypadku parametru ogólnego.
- Szablony dla platformy .NET Framework (klasyczne szablony języka F#) używają teraz biblioteki FSharp.Core z pakietu NuGet, aby dostosować je do szablonów języka F# zestawu .NET SDK.
- Automatyczne, transakcyjne uzupełnianie nawiasów jest teraz dostępne dla par nawiasów
()
,[]
,{}
,[||]
i[<>]
. Wykonaliśmy tę pracę we współpracy z użytkownikiem Gibran Rosa. - Teraz możesz przejść do definicji za pomocą Ctrl + Kliknięcie symbolu języka F#. Ustawienia dla tego gestu obowiązują również w oknie Narzędzia > Opcje.
- Zmodyfikowano interfejs użytkownika wydajności funkcji IntelliSense, aby umożliwić konfigurację nieaktualnych informacji typecheck dotyczących różnych funkcji środowiska IDE. Objaśnienia dla poszczególnych opcji znajdują się teraz w etykietkach narzędzi ustawień.
- Wyróżnianie odpowiednich nawiasów klamrowych działa teraz poprawnie. Dokonano tego we współpracy z użytkownikiem Vasily Kirichenko.
- Funkcja przejścia do definicji działa teraz prawidłowo, kiedy typ jest zdefiniowany rekursywnie (dzięki współpracy z użytkownikiem Vasily Kirichenko).
- Vasily Kirichenko naprawił usterkę polegającą na tym, że automatycznie zaimportowana przestrzeń nazw nie była otwierana, jeśli początek pliku był pusty.
- Vasily Kirichenko naprawił usterkę polegającą na tym, że specyfikatory
printf
zawierające kropki były wyświetlane w nieprawidłowych kolorach. - Vasily Kirichenko naprawił usterkę polegającą na tym, że wszystkie otwarte obiekty były uznawane za nieużywane w rekursywnym module.
- Vasily Kirichenko znacznie zwiększył wydajność analizatora nieużywanych otwartych obiektów.
- Funkcja automatycznego uzupełniania atrybutów teraz sugeruje tylko te opcje, które są rzeczywiście atrybutami (dzięki współpracy z użytkownikiem Vasily Kirichenko).
- Etykietki narzędzi z pomocą dotyczącą podpisu są teraz generowane dla parametrów statycznych dostawcy typów w miejscu wywołania konstruktora (dzięki współpracy z użytkownikiem Vasily Kirichenko).
- Vasily Kirichenko naprawił usterkę polegającą na tym, że typy wartości używane jako jednostki miar były kolorowane jako typy odwołań.
- Vasily Kirichenko naprawił usterkę polegającą na tym, że kolorowanie składni mogło znikać podczas przewijania niektórych plików.
- Eksperymentalnie zaimplementowano teraz obsługę funkcji CodeLens (dzięki współpracy z użytkownikiem Victor Peter Rouven Müller). Można ją włączyć w edytorze > tekstów Opcje > F# > Code Lens.
- Usunięto usterkę polegającą na tym, że usługa kompilatora języka F# niepoprawnie wychwyciła nazwy modułów w dokumentacji XML, została usunięta przez Sebastiana Urbana.
- Eugene Auduchinok zmienił zachowanie kodu, który używał wywołań elementu
Dictionary
zContainsKey
, a następnieItem
, aby używał elementuTryGetValue
. - Jakob Majoka również miał swój wkład w procesie używania innego interfejsu API dla etykietki narzędzi.
Ulepszenia dotyczące infrastruktury, tworzenia pakietów i kodu typu open source
Wprowadziliśmy następujące ulepszenia dotyczące infrastruktury, tworzenia pakietów i udziału w naszym środowisku typu open source:
- Kompilator języka F# dystrybuowany za pomocą programu Visual Studio nie jest już instalowany jako pojedynczy element w lokalizacji zestawu SDK kompilatora języka F#. Jest ona teraz w pełni równoległa z programem Visual Studio, co oznacza, że instalacje równoległe programu Visual Studio będą mieć naprawdę równoległe środowiska narzędzi i języka F#.
- Pakiet NuGet FSharp.Core jest teraz podpisany.
- Rejestrowanie ETW zostało dodane do narzędzi i kompilatora języka F#.
- Bardzo duże pliki
control.fs
/control.fsi
z biblioteki FSharp.Core zostały podzielone na plikiasync.fs
/async.fsi
,event.fs
/event.fsi
,eventmodule.fs
/eventmodule.fsi
,mailbox.fs
/mailbox.fsi
iobservable.fs
/observable.fsi
. - Dodaliśmy wersje wzorowane na stylu zestawu SDK .NET dla artefaktów testów przeciążeniowych wydajności naszych projektów.
- Usunęliśmy z naszej bazy kodu pakiet Newtonsoft.json, więc jest teraz o jeden pakiet mniej do pobrania dla współautorów OSS.
- Używamy teraz najnowszych wersji pakietów System.Collections.Immutable i System.Reflection.Metadata.
Ulepszenia dotyczące zgodności i zestawu narzędzi języka C++
Ta wersja zawiera następujące ulepszenia dotyczące zgodności i zestawu narzędzi języka C++:
- Wprowadzono nowy, eksperymentalny, oparty na tokenie preprocesor, który jest zgodny ze standardami C++11 (w tym z funkcjami preprocesora C99). Można go włączać za pomocą przełącznika /experimental:preprocessor. Sterowanie tą funkcją odbywa się za pomocą makra
_MSVC_TRADITIONAL
, które ustawia wartość 1, jeśli ma być używany tradycyjny preprocesor, i wartość 0, jeśli ma być używany nowy eksperymentalny preprocesor zgodny ze standardami. - Wiersz polecenia dla deweloperów programu Visual Studio obsługuje włączanie środowisk uruchomieniowych języka Visual C++ z lukami w zabezpieczeniach Spectre wariant 1 (
-vcvars_spectre_libs = spectre
). Więcej informacji na temat ograniczania ryzyka w związku z luką w zabezpieczeniach Spectre można znaleźć na blogu zespołu języka Visual C++. - Dodano dwa nowe dodatki do optymalizatora architektury SSA obsługujące generowanie nowoczesnego kodu C++: eliminację nadmiarowego magazynu i składanie nadmiarowych gałęzi.
- Zoptymalizowano wydajność operacji We/Wy mapowania pamięci w konsolidatorze, aby zmniejszyć czasy konsolidowania.
Tworzenie aplikacji międzyplatformowych w języku C++
W tej wersji dodaliśmy i ulepszyliśmy następujące funkcje tworzenia aplikacji międzyplatformowych w języku C++:
- Dodano szablon Dodaj>Nowy element na potrzeby generowania pliku w formacie clang z obsługą konwencji kodowania określonej dla formatu Clang w oknie Narzędzia>Opcje. Jeśli wybrano konwencję programu Visual Studio, wygenerowany plik będzie dopasowany do bieżącej konfiguracji formatowania użytkownika programu Visual Studio określonej w oknie Narzędzia > Opcje.
- Zaktualizowano dostarczany plik clang-format.exe do wersji 6.0.0.
- Dodano szablony ułatwiające dodawanie konfiguracji do pliku CppProperties.json.
- Dodano szablony ułatwiające dodawanie konfiguracji do pliku CMakeSettings.json (Rysunek 7).
Produktywność w języku C++
Wprowadziliśmy następujące rozszerzenia i ulepszenia dotyczące produktywności języka C++:
- Etykietki Szybka podpowiedź do makr w języku C++ pokazują teraz, co rozszerzają, a nie tylko samą definicję. Są one szczególnie przydatne w przypadku złożonych makr, które odwołują się do innych makr, ponieważ wyjaśniają, czym jest zastępowany identyfikator makra w preprocesorze.
- Dodano nową ikonę żarówki szybkiej poprawki umożliwiającą przekonwertowanie podstawowych makr na element constexpr jako nowe narzędzia do modernizacji kodu.
- Funkcja IntelliSense dla szablonów udostępnia więcej szczegółów na temat argumentów szablonu, aby móc w pełni korzystać z funkcji IntelliSense w treści szablonu (Rysunek 8).
- Pracujemy nad odświeżeniem naszego środowiska analizy kodu. Już teraz możesz włączyć nowe, ciągle opracowywane funkcje w oknie Narzędzia>Opcje>Edytor tekstów>C++>Eksperymentalne>Analiza kodu. Analiza kodu może działać w tle, gdy pliki są otwierane lub zapisywane, a wyniki są wyświetlane na liście błędów i jako zielone podkreślenia w edytorze (Rysunek 9).
Ulepszenia debugowania języka C++
Wprowadziliśmy następujące ulepszenia debugowania:
- Funkcja Tylko mój kod pozwala teraz na pominięcie kodu z bibliotek systemowych lub bibliotek C++ innych firm oprócz zwijania takich wywołań w oknie stosu wywołań. To zachowanie można kontrolować w dowolnych bibliotekach języka C++, jeśli kod zostanie skompilowany za użyciem przełącznika /JMC, a w pliku natjmc zostaną określone ścieżki do bibliotek innych niż biblioteki użytkownika. Jeśli biblioteka systemowa wywoła kod użytkownika podczas wkroczenia do kodu, debuger pominie cały kod systemowy i zatrzyma się w pierwszym wierszu wywołania zwrotnego do kodu użytkownika (Rysunek 10).
- Punkty przerwania danych można teraz ustawiać w oknach wyrażeń kontrolnych, szybkich wyrażeń kontrolnych, zmiennych automatycznych i zmiennych lokalnych, dzięki czemu za pomocą kilku kliknięć można przerwać program, gdy wartość przechowywana w pamięci ulegnie zmianie.
- Link źródłowy umożliwia osadzanie informacji o oryginalnym kodzie źródłowym pliku wykonywalnego lub biblioteki w pliku PDB podczas kompilacji.
- Podczas debugowania domyślnie okno konsoli pozostaje teraz otwarte, gdy program kończy wykonywanie (podobnie jak w przypadku uruchamiania programu bez debugera). Jeśli chcesz, aby konsola, tak jak wcześniej, była automatycznie zamykana, możesz zmienić to zachowanie w oknie Narzędzia > Opcje > Debugowanie > Ogólne.
Ulepszenia języka JavaScript i języka TypeScript
TypeScript 3.0
Program Visual Studio 2017 w wersji 15.8 domyślnie zawiera teraz kod TypeScript 3.0. Aby uzyskać szczegółowe informacje na temat tej wersji, zobacz Ogłoszenie wydania TypeScript 3.0.
Ulepszona obsługa platformy Vue.js
Ulepszono obsługę biblioteki platformy Vue.js, a w szczególności obsługę plików vue, znanych także jako „składniki jednoplikowe”. Usprawnia to edytowanie bloków skryptu wewnątrz plików vue. Te usprawnienia obejmują obsługę bloków skryptów utworzonych w języku TypeScript za pośrednictwem atrybutu lang="ts"
na elemencie skryptu. (Uwaga: Proces kompilacji przy użyciu pakietu WebPack lub podobnego musi służyć do konwertowania plików vue na pliki HTML i JS potrzebne w czasie wykonywania. Aby uzyskać więcej informacji, zobacz stronę Składniki pojedynczego pliku.
Jeśli zostanie zainstalowane obciążenie Node.js, w oknie dialogowym Nowy projekt w ścieżce „JavaScript / Node.js” lub „TypeScript / Node.js” będą teraz dostępne szablony podstawowej aplikacji internetowej Vue.js. Poniżej przedstawiono przykład edytowania kodu TypeScript wewnątrz bloku skryptu w pliku vue (Rysunek 11).
Ulepszenia programu ESLint
W tej wersji ponownie zaimplementowaliśmy obsługę programu ESLint. Program ESLint zawiera następujące ulepszenia i udoskonalenia:
- Oprócz zaznaczania błędów tylko w zapisanych plikach, program Visual Studio będzie teraz zaznaczał błędy także w plikach JavaScript podczas edycji.
- Wyniki można raportować dla wszystkich plików JS w projekcie, a nie tylko dla otwartych. Jeśli nie chcesz zaznaczać błędów w niektórych częściach projektu, możesz użyć pliku eslintignore, aby określić katalogi i pliki, które mają zostać zignorowane.
- Program ESLint został zaktualizowany, aby domyślnie używać wersji ESLint 4, jeśli jednak projekt ma lokalną instalację programu ESLint, zostanie użyta ta wersja.
W programie Visual Studio można globalnie wyłączyć program ESLint, usuwając zaznaczenie ustawienia Włącz program ESLint w obszarze **Narzędzia > Opcje > Edytor tekstów > Javascript/Typescript > Zaznaczanie błędów ** (Rysunek 12).
Ulepszenia otwierania folderu dla środowiska Node.js
Wprowadziliśmy liczne ulepszenia pracy z językami JavaScript i TypeScript w scenariuszu otwierania folderu po zainstalowaniu „obciążenia Node.js”. Dotyczą one na przykład zarządzania pakietami NPM, kompilowania języka TypeScript, uruchamiania i debugowania za pomocą programu Node.exe, wykonywania skryptów NPM i uruchamiania testów jednostkowych.
Aby uzyskać więcej informacji, zobacz Tworzenie kodu JavaScript i TypeScript w programie Visual Studio bez rozwiązań ani projektów.
Ulepszenia wydajności edytora
W poprzednich wersjach wszystkie operacje usługi języków JavaScript i TypeScript były obsługiwane przez jeden proces platformy Node.js. Mogło to powodować opóźnienia edytora, jeśli polecenia mające wpływ na wpisywanie przez użytkowników (np. automatyczne formatowanie w nowym wierszu) były wysyłane w czasie, gdy trwała już potencjalnie długa operacja (np. analizowanie kodu w poszukiwaniu błędów). Aby temu zaradzić, na potrzeby operacji, które mają największy wpływ na edytowanie, jest teraz używany oddzielny proces. Ten proces zdecydowanie mniej obciąża zasoby systemu, niż istniejący proces usługi językowej. Jeśli jednak chcesz wyłączyć nowy proces, zaznacz pole Wyłącz przetwarzanie składni dedykowanej w obszarze Narzędzia > Opcje > Edytor tekstów > JavaScript/TypeScript >Usługa językowa.
Narzędzia Visual Studio Web Tools
Menedżer biblioteki to nowa funkcja zawarta w programie Visual Studio 2017. Ułatwia ona zarządzanie bibliotekami po stronie klienta w projektach internetowych.
Narzędzia kontenerów
Dodaliśmy nowe środowisko kontenera platformy Docker pojedynczego projektu dla projektów internetowych platformy ASP.NET Core. Uzupełnia ono istniejące narzędzia kontenerów bazujące na platformie Docker Compose i ułatwia tworzenie, debugowanie i kompilowanie kontenerów platformy Docker bezpośrednio w programie Visual Studio.
Obsługę platformy Docker można dodać podczas tworzenia projektu (Rysunek 13):
Obsługę platformy Docker można też włączyć w istniejącym projekcie za pomocą menu kontekstowego projektu w Eksploratorze rozwiązań (Rysunek 14). Gdy to zrobisz, program Visual Studio utworzy pojedynczy plik Dockerfile w projekcie. Masz możliwość wyboru systemu: Windows lub Linux.
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.
Jeśli masz rozwiązanie z wieloma projektami platformy Docker, to gdy je uruchomisz, domyślnie będzie działał tylko jeden kontener. Jeśli chcesz, aby jednocześnie działało wiele kontenerów, możesz kliknąć rozwiązanie w Eksploratorze rozwiązań prawym przyciskiem myszy i wybrać pozycję Ustaw projekty startowe, a następnie pozycję Wiele projektów startowych i z menu rozwijanego Akcja wybrać polecenie Uruchom lub Uruchom bez debugowania dla wszystkich projektów, które chcesz uruchomić.
Jeśli Twój konteneryzowany projekt będzie działał zgodnie z oczekiwaniami, możesz kliknąć go prawym przyciskiem myszy i wybrać polecenie Utwórz obraz platformy Docker, aby skompilować obraz lokalnie i gdy wszystko będzie gotowe, wypchnąć do usługi Azure Container Registry lub witryny DockerHub.
Możesz również dodać istniejące funkcje bazujące na narzędziu Docker Compose do projektu internetowego platformy ASP.NET Core za pomocą nowej opcji obsługi orkiestratora kontenerów(Rysunek 16). Kliknij prawym przyciskiem myszy projekt internetowy platformy ASP.NET Core w Eksploratorze rozwiązań, wybierz pozycję Dodaj > Obsługa orkiestratora kontenerów, a następnie z menu rozwijanego wybierz pozycję Docker Compose.
Ulepszenia publikowania
Ta wersja zawiera następujące ulepszenia dotyczące publikowania:
- Podczas publikowania kontenera platformy Docker w rejestrze kontenerów możesz teraz dostosować tag obrazu. Możesz ręcznie dodać tag (jego wartość domyślna to „najnowszy”) lub użyć tagu wygenerowanego automatycznie, aby mieć pewność, że każdy tag jest unikatowy.
- Podczas tworzenia nowej usługi Azure App Service możesz również skonfigurować automatyczne zbieranie danych telemetrycznych w usłudze Application Insights. Jeśli wybierzesz region, który ma także usługę Application Insights, będzie ona włączona domyślnie. Jeśli wybierzesz region, który nie ma jeszcze usługi Application Insights, możesz ręcznie określić inny region dla zasobu usługi Application Insights, korzystając z listy rozwijanej.
- Podczas publikowania projektów usługi Azure Functions możesz wybrać publikowanie za pomocą nowej funkcji Uruchom z archiwum ZIP.
Visual Studio Tools dla programu Xamarin
Ta wersja zawiera następujące aktualizacje dla programu Xamarin:
- Dodaliśmy obsługę środowiska Xcode 9.4.
- Podczas tworzenia nowego projektu platformy Xamarin.Forms opcją udostępniania kodu domyślnego jest teraz .NET Standard. Opcja projektu udostępnionego jest nadal dostępna.
- Dodaliśmy ulepszenia kompilacji przyrostowej systemu Android. Platforma Xamarin.Android używa plików wygenerowanych w pośrednim katalogu danych wyjściowym w celu osiągnięcia kompilacji przyrostowych, które są szybsze niż kompilacje pełne. Wcześniej zmiana platformy docelowej projektu powodowała unieważnienie plików oraz wykonanie pełnej kompilacji przy następnym uruchomieniu. W tej wersji przechowujemy pliki w folderach poszczególnych platform, dlatego można przełączać się między różnymi platformami docelowymi i korzystać z zalet kompilacji przyrostowych. Czyszczenie projektu umożliwia odzyskanie miejsca na dysku używanego przez zachowane pliki.
- Dodaliśmy minimalną obsługę rozszerzenia projektów powiązania Xamarin.Mac w programie Visual Studio 2017. Dzięki temu program Visual Studio może ładować i rozpoznawać projekty powiązania Xamarin.Mac jako obsługiwane. Można też kompilować projekty powiązania Xamarin.Mac. Proces kompilacji odbywa się jednak lokalnie bez użycia natywnego łańcucha narzędzi Mac, dlatego generowanych zestawów IL nie można używać na potrzeby uruchamiania lub debugowania w aplikacjach.
Obsługa emulatora systemu Android funkcji Hyper-V
W tej wersji dodano obsługę emulatora systemu Google Android zgodnego z funkcją Hyper-V działającego w Aktualizacji systemu Windows 10 z kwietnia 2018 (Rysunek 17). Dzięki temu można używać emulatora systemu Android firmy Google razem z innymi technologiami opartymi na funkcji Hyper-V, w tym maszynami wirtualnymi funkcji Hyper-V, narzędziami platformy Docker, emulatorem urządzeniami HoloLens i innymi. Deweloperzy aplikacji mobilnych korzystający z funkcji Hyper-V mają teraz dostęp do szybkiego emulatora systemu Android, który zawsze obsługuje najnowsze interfejsy API systemu Android, od momentu instalacji współpracuje z usługami Google Play, a także obsługuje wszystkie funkcje emulatora systemu Android, m.in. kamerę, geolokalizację i szybki rozruch.
Xamarin.Android Designer
Wprowadziliśmy znaczące ulepszenia środowiska projektanta platformy Xamarin.Android. Najważniejsze z nich to:
- Wprowadzono edytor widoku złożonego, który pozwala na tworzenie, edytowanie i wyświetlanie podglądu układów w tym samym czasie (Rysunek 18).
- Ulepszono środowisko funkcji IntelliSense i zwiększono niezawodność kontrolek niestandardowych.
- Obsługa przykładowych danych dla systemów podawanych przez system.
Xamarin.Forms Previewer
Program podglądu Xamarin.Forms obsługuje teraz przybornik w przypadku korzystania z zestawu narzędzi Xamarin.Forms w wersji 3.1.0.583944 lub nowszej. Kontrolki zestawu narzędzi Xamarin.Forms będą wyświetlane w przyborniku, dzięki czemu nowi użytkownicy tego zestawu będą je mogli łatwiej odnajdować. Można również przeciągać i upuszczać kontrolkę w edytorze kodu XAML w celu dodania jej do strony. Program podglądu elementów Xamarin.Forms jest teraz częścią edytora XAML. Można go otworzyć i zamknąć za pomocą ikony rozwijania, znajdującej się na krawędzi okienka edytora.
Python
W tej wersji dodano następujące ulepszenia dla deweloperów języka Python:
- Funkcja IntelliSense w języku Python obsługuje teraz definicje zbioru typeshed w celu zapewnienia bogatszych wyników dla bibliotek, w którym nie można wywnioskować automatycznego uzupełniania za pośrednictwem analizy statycznej.
- Eksperymentalny debuger, po raz pierwszy wprowadzony w wersjach zapoznawczych 15.7, jest teraz domyślnym aparatem debugowania używanym na potrzeby języka Python. Zapewnia on szybsze i bardziej niezawodne debugowanie kodu w języku Python.
- Dodaliśmy obsługę języka Python 3.7, w tym poprawek, aby włączyć funkcje dołączania debugowania, profilowania i debugowania w trybie mieszanym (w wielu językach).
- Aby uzyskać więcej informacji na temat powyższych funkcji, zapoznaj się z naszym wpisem w blogu Python in Visual Studio 2017 version 15.8 (Język Python w programie Visual Studio w wersji 15.8).
Migrowanie lokalnych ustawień funkcji platformy Azure
Okno dialogowe „Ustawienia aplikacji zarządzanych” dostępne na stronie podsumowania publikowania zawiera teraz wartości z pliku local.settings.json i umożliwia migrowanie wartości do zdalnej aplikacji funkcji Azure Functions hostowanej na platformie Azure.
Usługi połączone
Można teraz skonfigurować ciągłe dostarczanie funkcji platformy Azure bezpośrednio z poziomu programu Visual Studio 2017 na potrzeby rozwiązań z projektami funkcji platformy Azure.
Ulepszenie Eksploratora testów
Eksplorator testów wyświetla teraz okienko podsumowania stanu testów (dolne okienko Eksploratora testów) o większej wartości informacyjnej po wybraniu jednego z grupowań w widoku hierarchii. W okienku są teraz wyświetlane następujące informacje: liczba testów z wynikiem negatywnym lub pozytywnym albo testów nieuruchomionych w danym grupowaniu.
Nowe funkcje rozszerzalności
Language Server Protocol
Program Visual Studio oferuje teraz natywną obsługę protokołu Language Server Protocol. Twórcy rozszerzeń mogą tworzyć rozszerzenia komunikujące się z istniejącymi serwerami języków w celu dodania obsługi dodatkowych języków w programie Visual Studio. Użytkownicy rozszerzeń mogą je instalować, aby rozpocząć używanie ulubionego języka, takiego jak Rust, w programie Visual Studio.
Szablon AsyncPackage
Twórcy rozszerzeń mogą teraz używać szablonów elementów, aby tworzyć pakiety AsyncPackage, które optymalizują wydajność rozszerzeń. Przeczytaj więcej na temat pakietów AsyncPackages.
Pakiety rozszerzeń
Łatwo udostępniaj ulubiony zestaw rozszerzeń lub konfiguruj nową instalację programu Visual Studio ze wszystkimi rozszerzeniami przy użyciu pakietu rozszerzeń. Pakiety rozszerzeń umożliwiają utworzenie listy rozszerzeń, spakowanie ich w postaci rozszerzenia i szybkiego użycia w celu zbiorczego zainstalowania tych rozszerzeń.
Publikowanie rozszerzenia wiersza polecenia
Publikowanie rozszerzeń w witrynie Visual Studio Marketplace przy użyciu wiersza polecenia.
Zestaw .NET Core SDK 2.1.400
Program Visual Studio 2017 w wersji 15.8 zawiera zestaw .NET Core SDK 2.1.400. Nowe funkcje zestawu SDK:
- Dodano szablony NUnit
- Dodano obsługę podpisanych narzędzi globalnych
- Ulepszono tekst pomocy w celu zwiększenia czytelności
Zamknięto 32 problemy w interfejsie wiersza polecenia platformy .NET Core
Zamknięto 20 problemów w zestawie SDK platformy .NET Core
Kontrola źródła
W przypadku projektów .NET Core pliki dodane bezpośrednio do projektu za pomocą Eksploratora plików będą teraz wyświetlać prawidłowe ikony śledzenia usługi Git i serwera TFS w Eksploratorze rozwiązań bez konieczności ponownego ładowania rozwiązania.
Rozszerzenie adaptera testowego platformy .NET
Adapter testowy platformy .NET ma następującą zmianę powodującą niezgodność i wycofanie:
- Zmiana powodująca niezgodność: pliki csproj wszystkich projektów testowych muszą zawierać odwołanie NuGet adaptera testowego .NET. Jeśli tak nie jest, te dane wyjściowe testu będą wyświetlane w projekcie, jeśli odnajdywanie przez rozszerzenie adaptera testowego zostanie uruchomione po kompilacji lub jeśli użytkownik spróbuje uruchomić wybrane testy:
- Projekt testowy {<Pełna ścieżka projektu> testowego} nie odwołuje się do żadnej karty NuGet platformy .NET. Odnajdywanie lub wykonywanie testów może nie działać w przypadku tego projektu. Zaleca się odwoływanie do adapterów testowych NuGet w każdym projekcie testowym w rozwiązaniu.
- W przypadku platform testowych .NET adaptery były wydawane w pakietach i nastąpiło odejście od rozszerzeń programu Visual Studio. Obsługa adapterów testowych platformy .NET dostarczanych za pośrednictwem rozszerzeń jest przestarzała, ale nadal obsługiwana. Oznacza to, że w obszarze Narzędzia > Opcje > Test są dostępne dwie nowe opcje.
- Pierwsza opcja umożliwia programowi Visual Studio używanie tylko adapterów testowych znalezionych w folderze zestawu testów (wypełnionym przez odwołanie NuGet adaptera testowego) lub określonych w pliku runsettings.
- Druga opcja umożliwia programowi Visual Studio „powrót” do poprzedniego zachowania i wyszukiwanie rozszerzeń adaptera testowego w przypadku projektów bez odwołania NuGet adaptera testowego. Obie opcje są wybierane domyślnie, dlatego zachowanie domyślne nie zmieni się w tej wersji.
- Uwaga: ta zmiana nie wpływa na adaptery testowe inne, niż platformy .NET.
Obsługa wpisów tajnych programu ASP.NET .NET Framework
W przypadku projektów programu .NET Framework na platformie ASP.NET, które są przeznaczone dla platformy .NET Framework 4.7.1 lub nowszej, można teraz otwierać i przechowywać wpisy tajne nie do użycia w kodzie źródłowym w pliku usersecrets.xml, klikając prawym przyciskiem projekt i wybierając pozycję „Zarządzane wpisy tajne użytkowników”.
Zwiększanie wydajności programu ASP.NET .NET Framework
Jeśli przywoływany pakiet kompilatora .NET jest nieaktualny w projekcie .NET Framework platformy ASP.NET, po otwarciu takiego projektu program Visual Studio wyświetli monit o uaktualnienie tego pakietu w celu poprawienia wydajności kompilacji.
.NET Framework 4.7.2
Program Visual Studio 2017 w wersji 15.8 oferuje teraz narzędzia deweloperskie programu .NET Framework 4.7.2 na wszystkich platformach z dołączonym środowiskiem uruchomieniowym w wersji 4.7.2. Program .NET Framework 4.7.2 oferuje kilka nowych funkcji i ulepszeń, jak również liczne poprawki niezawodności, stabilności, bezpieczeństwa i wydajności.
Więcej informacji na temat programu .NET Framework 4.7.2 można znaleźć w następujących artykułach:
- Blog programu .NET Framework 4.7.2 RTM
- Informacje o wersji programu .NET Framework 4.7.2
- Znane problemy w programie .NET Framework 4.7.2
- Zgodność aplikacji w programie .NET Framework 4.7.2
- Zmiany interfejsu API
Opóźnianie ładowania pakietów
Program Visual Studio opóźnia teraz ładowanie pakietów asynchronicznych, które są konfigurowane do ładowania automatycznego po pełnym uruchomieniu środowiska IDE programu Visual Studio i załadowaniu rozwiązania. Ta zmiana nie wpływa na pakiety ładowane automatycznie w sposób synchroniczny. Użytkownicy mogą monitorować postęp, korzystając z centrum stanu zadań w lewym dolnym rogu paska stanu. Twórcy rozszerzeń, którzy tworzą pakiety asynchroniczne, powinni testować swoje rozszerzenia. Aby uzyskać więcej informacji, zobacz Improving the responsiveness of critical scenarios by updating auto load behavior for extensions (Skracanie czasu reakcji scenariuszy o kluczowym znaczeniu przez aktualizowanie automatycznego ładowania dla rozszerzeń).
---
Powiadomienia o biuletynie zabezpieczeń programu Visual Studio 2017 w wersji 15.8
Wydanie usługi programu Visual Studio 2017 w wersji 15.8.7 — wydane 10 października 2018 r.
CVE-2018-8292 Luka w zabezpieczeniach platformy .NET Core umożliwiająca ujawnienie informacji
Na platformie .NET Core istnieje luka w zabezpieczeniach pozwalająca pominąć funkcję zabezpieczeń, gdy informacje dotyczące uwierzytelniania HTTP są przypadkowo ujawniane w żądaniu wychodzącym napotykającym przekierowanie HTTP. Osoba atakująca, która z sukcesem wykorzystałaby tę lukę w zabezpieczeniach, mogłaby użyć zdobytych informacji do głębszego naruszenia bezpieczeństwa aplikacji internetowej. Aktualizacja zabezpieczeń usuwa tę lukę w zabezpieczeniach, poprawiając sposób obsługi przekierowań HTTP w aplikacji .NET Core.
Wydanie usługi programu Visual Studio 2017 w wersji 15.8.4 — wydane 11 września 2018 r.
CVE-2018-8409 Odmowa usługi na platformie .NET Core
Luka w zabezpieczeniach typu „odmowa usługi” występuje na platformie .NET Core 2.1, gdy element System.IO.Pipelines nieprawidłowo obsługuje żądania. Tę lukę w zabezpieczeniach może wykorzystać atakujący i spowodować odmowę usługi dla aplikacji korzystającej z elementu System.IO.Pipelines. Lukę w zabezpieczeniach można wykorzystać zdalnie bez uwierzytelniania. Zdalny nieuwierzytelniony atakujący może wykorzystać tę lukę, dostarczając do aplikacji specjalnie przygotowane żądania.
CVE-2018-8409 Odmowa usługi na platformie ASP.NET Core
Luka w zabezpieczeniach typu „odmowa usługi” występuje na platformie ASP.NET Core 2.1, gdy nieprawidłowo obsługuje ona żądania. Tę lukę w zabezpieczeniach może wykorzystać atakujący i spowodować odmowę usługi dla aplikacji internetowej platformy ASP.NET Core. Lukę w zabezpieczeniach można wykorzystać zdalnie bez uwierzytelniania. Zdalny nieuwierzytelniony atakujący może wykorzystać tę lukę, dostarczając do aplikacji platformy ASP.NET Core specjalnie przygotowane żądania internetowe.
Program Visual Studio 2017 w wersji 15.8 — wydany 14 sierpnia 2018 r.
CVE-2018-0952 Luka w zabezpieczeniach dotycząca podniesienia poziomu uprawnień standardowego modułu zbierającego centrum diagnostyki
W usłudze Visual Studio istnieje luka w zabezpieczeniach dotycząca podnoszenia poziomu uprawnień, co może prowadzić do uzyskania uprawnień systemowych przez użytkownika nie będącego administratorem podczas zapisywania plików. Osoba atakująca, która wykorzysta tę lukę, może zapisywać pliki jako system, mając dostęp tylko na poziomie użytkownika. Ta aktualizacja zabezpieczeń rozwiązuje ten problem, personifikując bieżącego użytkownika w celu weryfikacji dostępu do lokalizacji pliku.
Program Visual Studio 2017 w wersji 15.8 (wersja zapoznawcza 4) — wydany 10 lipca 2018 r.
CVE-2018-8172 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu w programie Visual Studio
Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu, która może prowadzić do wykorzystania maszyny użytkownika po otwarciu specjalnie przygotowanego projektu lub pliku zasobów. Aktualizacja zabezpieczeń usuwa tę lukę w zabezpieczeniach, poprawiając sposób sprawdzania źródłowej adiustacji pliku.
CVE-2018-8260 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu w programie .NET Framework
Istnieje luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu w oprogramowaniu platformy .NET, która może prowadzić do wykorzystania maszyny użytkownika przez umożliwienie osobom atakującym uruchamiania dowolnego kodu w kontekście bieżącego użytkownika. Aktualizacja zabezpieczeń usuwa tę lukę w zabezpieczeniach, poprawiając sposób sprawdzania źródłowej adiustacji pliku na platformie .NET.
CVE-2018-8232 Luka w zabezpieczeniach polegająca na nieuprawnionej modyfikacji w programie Microsoft Macro Assembler na platformie .NET
Luka w zabezpieczeniach polegająca na nieuprawnionej modyfikacji związana z nieprawidłową weryfikacją kodu przez program Microsoft Macro Assembler. Aktualizacja zabezpieczeń usuwa tę lukę w zabezpieczeniach przez sprawdzenie, czy program Microsoft Macro Assembler prawidłowo weryfikuje logikę kodu.
CVE-2018-8171 Luka w zabezpieczeniach dotycząca obejścia funkcji zabezpieczeń programu ASP.NET Core
Luka w zabezpieczeniach dotycząca obejścia funkcji zabezpieczeń programu ASP.NET Core istnieje, gdy liczba niepoprawnych prób zalogowania nie zostanie zweryfikowana, co może prowadzić do podejmowania przez osobę atakującą nieskończonych prób uwierzytelnienia. Aktualizacja usuwa tę lukę w zabezpieczeniach, weryfikując liczbę niepoprawnych prób logowania.
Program Visual Studio 2017 w wersji 15.8 (wersja zapoznawcza 3) — wydany 26 czerwca 2018 r.
CVE-2018-11235 Biuletyn zabezpieczeń firmy Microsoft dotyczący luk w zabezpieczeniach usługi Git
Usunęliśmy luki w zabezpieczeniach usługi Git, które zostały ujawnione przez społeczność Git. Luka w zabezpieczeniach może prowadzić do wykonania dowolnego kodu, gdy użytkownik sklonuje złośliwe repozytorium.
Program Visual Studio 2017 w wersji 15.8 (wersja zapoznawcza 1) — wydany 8 maja 2018 r.
CVE-2018-0765 Biuletyn zabezpieczeń firmy Microsoft dotyczący luki w zabezpieczeniach umożliwiającej przeprowadzenie ataku typu „odmowa usługi” względem platformy .NET Core
- Firma Microsoft publikuje ten biuletyn zabezpieczeń, aby zapewnić informacje na temat luki w zabezpieczeniach platformy .NET Core i .NET Native w wersji 2.0. W tym biuletynie podano też wskazówki dla deweloperów dotyczące aktualizowania aplikacji w celu usunięcia tej luki w zabezpieczeniach.
- Firma Microsoft dowiedziała się o luce w zabezpieczeniach umożliwiającej przeprowadzenie ataku typu „odmowa usługi”, jeśli program .NET Framework lub .NET Core nieprawidłowo przetworzy dokumenty XML. Tę lukę w zabezpieczeniach może wykorzystać atakujący i spowodować odmowę usługi dla aplikacji .NET Framework, .NET Core lub .NET Native.
- Aktualizacja usuwa tę lukę w zabezpieczeniach, poprawiając obsługę przetwarzania dokumentów XML przez aplikacje .NET Framework, .NET Core i .NET Native.
- W przypadku aplikacji ASP.NET Core deweloperom zaleca się również zaktualizowanie do platformy ASP.NET Core 2.0.8.
Visual Studio 2017 w wersji 15.8.1
wydane 17 sierpnia 2018 r.
Najważniejsze problemy rozwiązane w wersji 15.8.1
Problemy rozwiązane w wersji 15.8.1:
- Rozwiązano problem polegający na nieoczekiwanym zamykaniu programu Visual Studio po zamknięciu okna przeglądarki podczas debugowania projektu sieci Web.
Visual Studio 2017 w wersji 15.8.2
wydana 28 sierpnia 2018 r.
Najważniejsze problemy rozwiązane w wersji 15.8.2
Są to problemy zgłaszane przez klientów i rozwiązane w wersji 15.8.2:
- Brak elementu menu kontekstowego Opublikuj pojedynczy plik.
- Operacje sieciowe usługi Git nie działają: nie można zduplikować pliku git-askpass.exe.
- Nie można załadować „Pakietu edytora właściwości języka Visual C++”.
- Podgląd przekształcenia powoduje błąd.
- Nie można wpisać nawiasu klamrowego zamykającego.
- Odwołanie do obiektu nie jest ustawione na wystąpienie obiektu podczas wdrażania projektu usługi Service Fabric po aktualizacji 15.8.0.
- Błąd instalacji „Format podanej ścieżki nie jest obsługiwany”.
- Zadanie ExpandPriContent nie powiodło się. Niedozwolone znaki w ścieżce.
- Błąd instalatora „Nie można utworzyć wystąpienia typu System.Collections.Genertic.Iset'1[Signer]".
- Wdrażanie usługi Service Fabric w wersji 15.8.0 zakończyło się niepowodzeniem.
- Nie można utworzyć pakietu aplikacji dla sklepu Windows.
- Nieprawidłowe generowanie kodu dla silnie typizowanych zasobów.
- Powiązanie włoskiego układu klawiatury.
- Funkcja IntelliSense jest uszkodzona #9999.
- Jeśli podczas pracy nad projektem Unity zostanie zmodyfikowanych wiele plików projektu, Visual Studio Tools for Unity automatycznie ponownie załaduje rozwiązanie.
- W takim przypadku klient zobaczy okno dialogowe, umożliwiające zamknięcie aplikacji pakietu Office, jeśli blokują one instalację programu Visual Studio i powodują błąd 1303.
Visual Studio 2017 w wersji 15.8.3
wydanej 6 września 2018 r.
Najważniejsze problemy rozwiązane w wersji 15.8.3
Są to problemy zgłaszane przez klientów rozwiązane w wersji 15.8.3:
- Program Visual Studio 2017 w wersji 15.8.2 zawierał wstępną kompilację zestawu .NET Core SDK 2.1.401, która jest niezgodna z programem Visual Studio. Rozwiązaliśmy ten problem w programie Visual Studio 2017 w wersji 15.8.3.
- Błąd podczas tworzenia przypadku testowego VSCppUnit.
- Funkcja IntelliSense języka Python nie działa dla języka Python 2.7.
- Projektant XAML powoduje nieoczekiwane zamykanie programu Visual Studio.
Visual Studio 2017 w wersji 15.8.4
wydanej 11 września 2018 r.
Najważniejsze problemy rozwiązane w wersji 15.8.4
Są to problemy zgłaszane przez klientów rozwiązane w wersji 15.8.4:
- Constexpr function with explicit (void) parameter crashes MSVC 15.8.0 release (Funkcja constexpr z jawnym (nieważnym) parametrem powoduje awarię wersji MSVC 15.8.0).
- TypeScriptLspCodeActionProvider encountered an error and has been disabled (Element TypeScriptLspCodeActionProvider napotkał błąd i został wyłączony).
- The 'Shared Web Components' package did not load correctly (Pakiet „Udostępnione składniki internetowe” nie został prawidłowo załadowany).
- Editing CSS with Browser Link enabled can crash Visual Studio (Edytowanie arkuszy CSS z włączoną łącznością z przeglądarkami może powodować awarię programu Visual Studio).
- Service Fabric Deployment fails in 15.8.0 (Wdrażanie usługi Service Fabric w wersji 15.8.0 kończy się niepowodzeniem).
- Incorrect error for constexpr pointer to members with VS2017 15.8 (Błąd wskaźnika wyrażenia constexpr dla elementów członkowskich w programie VS2017 15.8).
- Constexpr doesn't support __declspec(dllimport) in VS2017 15.8 (Wyrażenie constexpr nie obsługuje elementu __declspec(dllimport) w programie VS2017 15.8).
- C++ VS 2017 Update 8 difference in member function pointer between C++14 and C++17 modes leads to crashes (C++, VS 2017 Update 8: różnica we wskaźniku funkcji elementu członkowskiego między trybami C++14 i C++17 prowadzi do awarii).
- TestExplorer locking up UI in latest build (Program TestExplorer blokuje interfejs użytkownika w najnowszej kompilacji).
- [WebKit] "Already defined symbol" for static template member definition (regression) ([WebKit] „Już zdefiniowany symbol” dla statycznej definicji elementu członkowskiego szablonu (regresja)).
- VS 15.8.0 Internal compiler error (Wewnętrzny błąd kompilatora programu VS 15.8.0).
- Internal compiler error in constexpr function (Wewnętrzny błąd kompilatora w funkcji constexpr).
- Test Explorer Window remains blank with Express (Okno Eksploratora testów jest puste w usłudze Express).
- Visual Studio 2017 fails to open on FIPS-enabled machine (Nie można otworzyć programu Visual Studio 2017 na maszynie z włączonym trybem FIPS).
- VS2017 15.8 Internal Compiler Error 'msc1.cpp', line 1518 when evaluating simple constexpr function (VS2017 15.8: wewnętrzny błąd kompilatora „msc1.cpp” w wierszu 1518 podczas obliczania wartości pojedynczej funkcji constexpr).
- Fatal error C1001 after update to VS 15.8.0 (Błąd krytyczny C1001 po aktualizacji do wersji VS 15.8.0).
- Migrating to VS2017 15.8: Internal compiler error when using constexpr functions as template parameters (Migracja do programu VS2017 15.8: wewnętrzny błąd kompilatora podczas używania funkcji constexpr jako parametrów szablonu).
- Internal compiler error when compiling a template function with a constexpr in VC++ 15.8.0 (Wewnętrzny błąd kompilatora podczas kompilowania funkcji szablonu za pomocą funkcji constexpr w programie VC ++ 15.8.0).
- Code generated by VC 15.8.1 compiler lead to crash (Kod wygenerowany przez kompilator programu VC 15.8.1 prowadzi do awarii).
Powiadomienia o biuletynach zabezpieczeń
- CVE-2018-8409 Odmowa usługi na platformie .NET Core
- CVE-2018-8409 Odmowa usługi na platformie ASP.NET Core
Visual Studio 2017 w wersji 15.8.5
wydany 20 września 2018 r.
Podsumowanie nowości w wersji 15.8.5
- Narzędzia Visual Studio Tools dla programu Xamarin obsługują teraz środowisko Xcode 10.
Najważniejsze problemy rozwiązane w wersji 15.8.5
Są to problemy zgłaszane przez klientów rozwiązane w wersji 15.8.5:
- Etykietka narzędzia debugera nie rozwija się w sesji debugowania rozszerzenia Xamarin.iOS.
- Debuger nie zezwala na opuszczenie punktu wykonania (Android).
- Po zaktualizowaniu do wersji 15.8.1 porada do danych nie jest wyświetlana podczas debugowania.
- Porada do danych debugera nie rozwija się [Edytor].
- Wyjątek:MSB0001: wewnętrzny błąd MSBuild: już zarejestrowano na czas kompilacji.
- Nieprawidłowa ścieżka do zasobu w manifeście ClickOnce po uaktualnieniu do programu VS 15.8.1.
- Błąd manifestu ClickOnce w wersji 15.8.
- W publikowaniu ClickOnce brakuje niektórych odwołań.
- ClickOnce: plik języka został skopiowany do nieprawidłowej lokalizacji.
- Brak odwołania w folderze publikowania ClickOnce.
- Kompilowanie projektów niekorzystających z pakietu .NET SDK języka F# powoduje wystąpienie błędu wewnętrznego programu MSBuild, chyba że równoległość programu MSBuild jest ustawiona na 1.
- Język F# nie korzysta z technologii NGEN w programie Visual Studio.
- Język F# wdraża pakiet binarny FSharp.Core 4.5.0.0 w lokalizacji wersji 4.4.3.0.
Szczegółowe informacje o nowościach w wersji 15.8.5
Visual Studio Tools dla programu Xamarin
Narzędzia Visual Studio Tools dla programu Xamarin obsługują teraz środowisko Xcode 10, co umożliwia kompilowanie i debugowanie aplikacji dla systemów iOS 12, tvOS 12 i watchOS 5. Zobacz artykuł, jak można się przygotować na system iOS 12, i nasze wprowadzenie do systemu iOS 12, aby uzyskać więcej informacji na temat nowych dostępnych funkcji.
Visual Studio 2017 w wersji 15.8.6
wydany 2 października 2018 r.
Podsumowanie nowości w wersji 15.8.6
- Dostępny jest najnowszy zestaw Windows 10 SDK.
Najważniejsze problemy rozwiązane w wersji 15.8.6
Są to problemy zgłaszane przez klientów rozwiązane w wersji 15.8.6:
- Pakiety NuGet dla funkcji Intellisense nie działają.
- Program Visual Studio jest zamykany po otwarciu pliku sln.
- Edytor XML w pliku App.Config jest nadal blokowany w wersji 15.8.4.
Szczegółowe informacje o nowościach w wersji 15.8.6
Najnowszy zestaw Windows 10 SDK dla deweloperów platformy uniwersalnej systemu Windows
Najnowszy zestaw Windows 10 SDK (kompilacja 17763) jest teraz dostępny jako składnik opcjonalny w obciążeniu programowania dla platformy uniwersalnej systemu Windows. Można dodać ten zestaw SDK do obciążenia, zaznaczając pole wyboru Windows 10 SDK (10.0.17763.0).
Visual Studio 2017 w wersji 15.8.7
wydana 10 października 2018 r.
Co nowego w wersji 15.8.7
Azure DevOps
Usługa Visual Studio Team Services zmieniła nazwę na Azure DevOps! Nowa nazwa będzie widoczna we wtyczce Team Explorer i w odwołaniach w całym programie Visual Studio.
Powiadomienia o biuletynach zabezpieczeń
CVE-2018-8292 Luka w zabezpieczeniach platformy .NET Core umożliwiająca ujawnienie informacji
Visual Studio 2017 w wersji 15.8.8
wydana 24 października 2018 r.
Najważniejsze problemy rozwiązane w wersji 15.8.8
Są to problemy zgłaszane przez klientów, rozwiązane w wersji 15.8.8:
- /DEBUG:FASTLINK brak informacji debugowania dla typów STL dołączanych za pomocą prekompilowanych nagłówków.
- Generowanie nieprawidłowego kodu widoczne w kompilatorze RTW 15.8.
- Uszkodzenie sterty podczas odwijania stosu w trakcie umieszczania funkcji w tekście.
- Konsolidator zużywa 6 GB pamięci w określonych przypadkach testowych.
Visual Studio 2017 w wersji 15.8.9
wydana 2 listopada 2018 r.
Najważniejsze problemy rozwiązane w wersji 15.8.9
Są to problemy zgłaszane przez klientów i rozwiązane w wersji 15.8.9:
- Dodano obsługę programu Xcode 10.1 w narzędziach Visual Studio Tools for Xamarin.
- Zaktualizowano szablon platformy Xamarin.Forms do wersji Xamarin.Forms 3.3.0.
- Aktualizacja 15.8.6 powoduje uszkodzenie projektów Instalatora.
- Wewnętrzny błąd kompilatora w programie VS15.8, plik msc1.cpp, wiersz 1518.
- Projekty Instalatora programu Microsoft Visual Studio 2017 0.8.8 i VS 15.8.6.
- Mechanizm SFINAE nie może wykryć pasującej przeciążonej funkcji w programie VS 15.9.0 w wersji zapoznawczej 3.
- Projektant XAML ulega awarii przy zamykaniu programu Visual Studio.
Znane problemy
Zobacz wszystkie znane problemy w programie Visual Studio 2017 w wersji 15.8 i dostępne dla nich obejścia.
Opinie i sugestie
Chcemy poznać Twoje zdanie! Problemy możesz zgłaszać za pomocą opcji Zgłoś problem w prawym górnym rogu instalatora lub bezpośrednio w środowisku IDE programu Visual Studio. Ikona znajduje się w prawym górnym rogu. Zgłaszanie sugestii dotyczących produktów i śledzenie problemów jest możliwe w społeczności deweloperów programu Visual Studio, gdzie można też zadawać pytania, znajdować odpowiedzi i proponować nowe funkcje. Możesz też uzyskać bezpłatną pomoc dotyczącą instalacji za pośrednictwem naszej pomocy technicznej przez czat na żywo.
Blogi
Skorzystaj ze szczegółowych informacji i zaleceń dostępnych w witrynie blogów dotyczących narzędzi programistycznych, aby być na bieżąco ze wszystkimi nowymi wersjami i zyskać dostęp do szczegółowych wpisów dotyczących szerokiego zakresu funkcji.
Historia informacji o wersji programu Visual Studio 2017
Więcej informacji na temat poprzednich wersji programu Visual Studio 2017 można znaleźć na stronie Historia informacji o wersji programu Visual Studio 2017.