Visual Studio 2015 Update 3

Last Update: 2017-04-07

Data wydania: 27 czerwca 2016

Dzisiaj z przyjemnością ogłaszamy wydanie programu Visual Studio 2015 Update 3. Jednym z najważniejszych zgłaszanych problemów dotyczących programu Update 2 było duże użycie pamięci. Rozwiązaliśmy ten problem w wersji Update 3 RC, udostępniliśmy ją klientom, którzy zgłaszali ten problem, i otrzymaliśmy pozytywne potwierdzenie skuteczności poprawki. W wersji Update 3 zawarto wiele takich poprawek w odpowiedzi na opinie klientów dotyczące wydajności i stabilności. Jeśli nie są to uwagi do wersji, których można by było się spodziewać, oznacza to, że dotyczą one najnowszej wersji.

Wyślij nam swoją opinię przy użyciu opcji Opinia w programie Visual Studio. Możesz również przekazywać sugestie w witrynie Visual Studio 2015 UserVoice.

Pobieranie

Możesz pobrać program Visual Studio 2015 ze strony My.VisualStudio.com. Portal My.VisualStudio.com wymaga bezpłatnej subskrypcji programu Dev Essentials lub subskrypcji programu Visual Studio.

Aby uzyskać więcej informacji, zobacz Jak zainstalować określoną wersję programu Visual Studio.

Co nowego?

Powiązane wydania

Inne zmiany

Narzędzia dla oprogramowania Apache Cordova

Program Visual Studio 2015 Update 3 zawiera narzędzia Tools for Apache Cordova Update 10 z ulepszeniami wymienionymi poniżej. Aby uzyskać więcej informacji na temat tej wersji, zobacz informacje o wersji Update 9 i Update 10 narzędzi dla oprogramowania Apache Cordova. Aby uzyskać najnowsze informacje o narzędziach firmy Microsoft, odwiedź Blog deweloperów firmy Microsoft w witrynie GitHub.

  • Dodano obsługę oprogramowania Cordova 6.1.1. Jest to wersja domyślna dla nowych projektów.
  • Wycofano rejestr wtyczek oprogramowania Cordova, który był używany w oprogramowaniu Cordova 4.x, co oznacza, że dodawanie wtyczek wymaga oprogramowania Cordova 5.x lub nowszego.
  • Lista podstawowych wtyczek została zaktualizowana i obecnie zawiera wtyczki dla scenariuszy dla przedsiębiorstw, takich jak usługa Intune, Azure Engagement, zabezpieczenia i lokalny magazyn bazy danych SQLite.
  • Teraz istnieje możliwość dodawania wtyczek przy użyciu projektanta konfiguracji według nazwy pakietu npm lub identyfikatora.

plugin-byid

  • Można także dodawać wtyczki wymagające parametrów przy użyciu projektanta konfiguracji.

plugin-parameters

Developer Analytics Tools

Dodano następujące ulepszenia w narzędziach Developer Analytics Tools 7.0.2:

  • Application Insights Trends, narzędzie do znajdowania trendów w danych telemetrycznych aplikacji.
  • Nowość Dane telemetryczne dotyczące wyjątków w funkcji CodeLens.
  • Informacje o telemetrii produkcji dodane do wyjątków w narzędziach diagnostycznych.
  • Obsługa dodawania usługi Application Insights do projektów platformy ASP.NET Core RC2 z poziomu programu Visual Studio.
  • Zdarzenia narzędzi diagnostycznych dla platformy ASP.NET 5 RC1 i ASP.NET Core RC2.
  • Automatyczne odświeżanie wyszukiwania usługi Application Insights po wybraniu szczegółów filtrów, przedziałów czasu i zdarzeń.
  • Przechodzenie do kodu z żądań w obszarze wyszukiwania.
  • Ulepszony interfejs logowania do platformy HockeyApp.

Aby uzyskać więcej informacji, zobacz informacje techniczne o wersji w dokumentacji platformy Microsoft Azure.

Debugowanie i diagnostyka

W programie Update 3 dodano narzędzia diagnostyczne z obsługą aplikacji uruchamianych na urządzeniach z systemem OneCore, w tym HoloLens i IOT.

Ulepszenia dotyczące funkcji Edytuj i kontynuuj dla języka C++:

  • Wyższa wydajność i niezawodność przy włączonej technologii FASTLINK.
  • Pomyślne stosowanie zmian kodu w bibliotekach statycznych nie powoduje tworzenia nieodświeżonego kodu.
  • Ostrzeżenia C4656 nie będą już wyświetlane dla fałszywych rozpoznań zmian typu podczas ponownej kompilacji.
  • Obsługa dodawania nowych typów o tej samej nazwie w wielu jednostkach kompilacji.

Ulepszenia debugowania interfejsu użytkownika XAML:

  • Po każdej zmianie fokusu w aplikacji nowa funkcja śledzenia fokusu w dynamicznym drzewie wizualnym spowoduje zaktualizowanie zaznaczonego elementu w dynamicznym drzewie wizualnym zgodnie z elementem mającym aktualnie fokus.

Visual Studio IDE

Subskrypcje i klucze produktów

W wersji Update 3 uwzględniono opinie klientów korzystających z subskrypcji przy użyciu tożsamości online lub kluczy produktów do odblokowywania środowiska IDE w następujący sposób:

  • Nie musisz już odwiedzać strony https://my.visualstudio.com w celu aktywowania przypisanej subskrypcji chmury programu Visual Studio i możesz zacząć korzystać z programu Visual Studio IDE natychmiast po przypisaniu subskrypcji.
  • Ulepszono obsługę błędów podczas stosowania klucza produktu.
  • Wszystkie operacje dotyczące konta użytkownika i licencji są teraz zabezpieczone przy użyciu protokołu HTTPS.
  • W oknie dialogowym Ustawienia konta poprawiono ułatwienia dostępu w zakresie aktywowania subskrypcji i wprowadzania klucza produktu.
  • Nowość Ponowne uwierzytelnianie co ~8 dni nie jest już wymagane do zachowania aktywnego konta personalizacji i synchronizowania ustawień mobilnego dostępu.

Narzędzia dla aplikacji uniwersalnych systemu Windows

Program Visual Studio 2015 Update 3 zawiera kilka ulepszeń narzędzi dla aplikacji uniwersalnych systemu Windows. Najważniejsze ulepszenie: podczas tworzenia pakietu do przesłania do Sklepu Windows można teraz zalogować się przy użyciu poświadczeń usługi Azure Active Directory do konta Sklepu usługi AAD. Po skojarzeniu projektu ze Sklepem Windows nie trzeba już logować się, aby utworzyć pakiet do przesłania do Sklepu.

Platforma .NET Native dla aplikacji uniwersalnych systemu Windows

.NET Native 1.4 jest wersją pomocniczą obsługi, która zwiększa wydajność, rozwiązuje kilka usterek zgłoszonych przez klientów i poprawia czasy tworzenia kompilacji wydania dużych aplikacji. Aplikacje XAML i gry Unity korzystające z platformy .NET Native 1.4 będą miały lepszą wydajność środowiska uruchomieniowego. Te ulepszenia zostały osiągnięte dzięki przyspieszeniu wywołań natywnych interfejsów API i interfejsów API odbicia.

Narzędzia architektury

Uwzględniono opinie klientów dotyczące poprawy wydajności i niezawodności.

Projektanci graficzni dla określonych domen (w tym dla plików EDMX i DBML)

W systemie Windows 10 program Visual Studio już nie przestaje odpowiadać podczas otwierania lub próby edycji dużych diagramów w formacie EDMX lub DBML przy wyświetlonej klawiaturze ekranowej.

Mapa kodu

  • Program Visual Studio już nie przestaje odpowiadać podczas próby wykonania polecenia „Generuj mapę kodu dla rozwiązania”, jeśli rozwiązanie zawierało projekty instalatora (vdproj).
  • Uruchomienie polecenia mapy kodu w edytorze kodu i zamknięcie okna mapy kodu bezpośrednio po jego wyświetleniu już nie powoduje awarii programu Visual Studio.

Walidacja warstw

  • W przypadku kompilowania rozwiązania z projektem modelowania zawierającym diagram warstwowy przy użyciu akcji Waliduj rdzeń procesora CPU nie jest już używany po zakończeniu kompilacji.
  • Teraz możliwa jest walidacja diagramu warstwowego, gdy jego nadrzędny projekt modelowania zawiera odwołania do bibliotek PCL (na przykład ODP.Net).

Narzędzia Node.js dla programu Visual Studio

Nowość Narzędzia Node.js Tools 1.2 RC for Visual Studio są teraz dostępne do pobrania. Oczekujemy, że ta wersja zapewni znacznie lepszą stabilność i wydajność, w tym zmniejszenie liczby awarii spowodowanych brakiem pamięci, które występowały we wcześniejszych wersjach.

Inne najważniejsze funkcje obejmują:

  • Szybsza, lepsza funkcja IntelliSense ES6
  • Bardziej niezawodne debugowanie
  • Ulepszone środowiska testów jednostkowych (w tym obsługa taśm)
  • Polecenie .npm w większej liczbie typów projektów

Aby uzyskać pełne informacje i pliki do pobrania, zobacz stronę wersji RC narzędzi Node.js Tools 1.2.

Narzędzia dla deweloperów sieci Web

W przypadku projektów aplikacji sieci Web ASP.NET, gdy pole wyboru „Włącz funkcję Edytuj i kontynuuj” nie jest zaznaczone, proces programu IIS Express nie będzie już przestawać działać po każdym zatrzymaniu debugowania.

Visual C++

Ulepszenia, takie jak nowe funkcje sprawdzania i komunikaty ostrzegawcze dla kompilatora języka C++, a także ulepszenia wydajności i obsługa kodowania w językach C# i Visual Basic, zostały uwzględnione w wersji Update 3.

Kompilator C++

  • Teraz sprawdzany jest dostęp do usuniętego elementu ctor prostego kopiowania/przenoszenia. Bez sprawdzania mogło nastąpić nieprawidłowe wywołanie domyślnego elementu ctor kopiowania (w którym implementacja może być niewłaściwie sformułowana) i spowodować potencjalne wygenerowanie złego kodu środowiska uruchomieniowego.
  • Teraz element Std::is_convertible prawidłowo wykrywa przypisanie własne typu klasy, gdy konstruktor kopiujący został usunięty lub jest prywatny.
  • W ostatniej fazie kończenia obsługi biblioteki ATL z atrybutami, co zostało zapoczątkowane w programie Visual Studio 2008, dodano do kompilatora nowe ostrzeżenie o końcu obsługi. W programie Visual Studio 2015 Update 3 użycie kodu biblioteki ATL z atrybutami spowoduje wygenerowanie domyślnie włączonego ostrzeżenia poziomu 1. C4467
  • W przypadku korzystania z plików PCH niezgodne katalogi dołączania -I dla kompilatora między kompilacjami z opcjami -Yc i -Yu spowodują teraz wygenerowanie nowego ostrzeżenia. C4599
  • W przypadku korzystania z plików PCH niezgodne dyrektywy #include w plikach źródłowych między kompilacjami z opcjami -Yc i -Yu spowodują teraz wygenerowanie ostrzeżenia. C4598

Aby uzyskać więcej informacji na temat możliwego wpływu tych zmian na istniejący kod, zobacz Przewodnik przenoszenia i uaktualniania kodu Visual C++ w witrynie MSDN.

Biblioteki języka C++

  • Przywrócono wydajność trybu debugowania podczas niszczenia zakresów prostych obiektów, która uległa pogorszeniu w wersji Update 2, jak w przypadku wektora.
  • Zaimplementowano cechy swappable z dokumentu roboczego standardu C++17 z wniosku P0185 Dodanie cech swappable deklaracji [nothrow-]. Jako rozważana funkcja standardu C++17, cechy (is_swappable, is_swappable_with, is_nothrow_swappable i is_nothrow_swappable_with) są tylko widoczne, a ograniczenia dotyczące obiektu std::swap są tylko aktywne podczas kompilowania przy użyciu opcji /std:c++latest.
  • Z biblioteki vcruntime140.dll oraz bibliotek statycznych usunięto wywołania zdarzeń funkcji ETW, które były wcześniej uruchamiane podczas uruchamiania procesu oraz funkcji dllmain.
  • Nowość Usunięto symbol długości nazwy w typowych mechanizmach używanych przez kontenery STL, takich jak std::vector, zmniejszając prawdopodobieństwo ostrzeżeń C4503. Na przykład następujący typ nie generuje już ostrzeżenia: concurrency::concurrent_unordered_map<>>>>.

  • ATL/MFC/AMP/PPL: wiele poprawek dotyczących zgodności związanych z wyszukiwaniem dwufazowym. Są to następujące poprawki:

    • Element _com_ptr_t ma teraz konstruktor przenoszący oraz przenoszący operator przypisania.
    • MFC: naprawiono obsługę wartości HMENU, które czasami uniemożliwiały prawidłowe wyświetlanie menu w aplikacjach 64-bitowych.

    • ATL/MFC: następujące ostrzeżenia nie są już emitowane:

    • Zastępowanie/ukrywanie funkcji: C4263, C4264, C4266
    • Niezgodność specyfikacji wyjątku: C4986
    • /analyze: C6386

    • ATL: wszystkie odmiany funkcji AtlThrow są teraz prawidłowo oznaczone przy użyciu atrybutu __declspec(noreturn). Zapobiega to błędnemu emitowaniu ostrzeżeń SAL.

    • ATL: naprawiono/ulepszono kilka adnotacji SAL.

    • Element /std:c++latest zapewnia następujące nowe funkcje: P0025R1 „clamp()”, P0185R1 „is_swappable, is_nothrow_swappable” oraz P0272R1 „Non-const basic_string::data()”.

    • Atrybut /std:c++latest kontroluje również usuwanie następujących starych funkcji: N4190 „Usuwanie operatorów auto_ptr, random_shuffle() i starych elementów ”, P0004R1 „Usuwanie przestarzałych aliasów Iostream”, LWG 2385 „Argument funkcji przydzielającej function::assign jest nieprawidłowy” oraz różnych funkcji niestandardowych (przestrzeni nazw std::tr1, niektórych mechanizmów zgodnych tylko ze standardem TR1 oraz struktury std::identity).

    • Naprawiono ciche generowanie nieprawidłowego kodu w dyrektywie atomic/atomic w wersji x86.

    • STL unika teraz bezpiecznych wątkowo „magicznych danych statycznych”. Są one używane tylko wtedy, gdy jest to bezwzględnie konieczne, co poprawia generowanie kodu.

    • Konstruktor doskonałego przekazywania dalej krotek unika teraz priorytetowego działania względem konstruktora kopiującego, dzięki czemu naprawiono błędy kompilatora w niektórych scenariuszach.

  • Koprocedury:

    • Następujące elementy zostały wycofane z użycia: słowa kluczowe __yield_value & __await. Zamiast nich należy używać słów kluczowych co_await / co_yield.
    • Dodano powiadomienie o wycofaniu do elementów członkowskich to_address i from_promise klasy coroutine_handle. Zamiast elementu coroutine_handle::to_address() należy używać elementu coroutine_handle::address().
    • Zamiast elementu coroutine_handle::from_promise(Promise *P) należy używać elementu coroutine_handle::from_promise(Promise &P).
  • Zwiększono wydajność następujących funkcji : std::equal i std::lexicographical_compare przez bardziej agresywne wysyłanie do funkcji memcmp i memchr, co pozwala uzyskać duży przyrost wydajności w niektórych scenariuszach, na przykład dotyczących funkcji equal(char,char,chari char) na platformach 64 bitowych.

    • Znacząco zwiększono wydajność debugowania kompilacji dzięki zmniejszeniu liczby wywołań funkcji ewidencjonowania w mechanizmie debugowania iteratora.
    • Zwiększono wydajność funkcji string::push_back o kolejne 40% w porównaniu do wersji Update 2 w kompilacjach wydania przy dodatkowej znaczącej poprawie w kompilacjach debugowania. (Oprócz znaczącej poprawy wydajności wprowadzonej w wersji Update 2).
    • Ulepszono kompilacje debugowania dla wszystkich standardowych algorytmów przez wyeliminowanie kilku typów pustych wywołań obsługi szablonów metaprogramowania (na przykład _Iter_cat) oraz wszystkich algorytmów przyjmujących predykaty, zmniejszając liczbę kopii predykatu.
    • Element std::mismatch w obiekcie _ITERATOR_DEBUG_LEVEL o wartości 1 i 2 ze sprawdzeniem drugiego zakresu, jeśli to możliwe, przed iteracją.
  • Zastosowano ulepszoną diagnostykę dla komunikatów _SCL_INSECURE_DEPRECATE do pozostałych algorytmów (w wersji Update 2 tylko niewielką liczbę argumentów podłączono do nowego mechanizmu wycofywania z użycia). Poprawia to również działanie debugowania algorytmów standardowych, ponieważ nie ma żadnej interakcji z preprocesorem _ITERATOR_DEBUG_LEVEL powodującej zadeklarowanie wielu kopii algorytmów standardowych. Naprawiono również następujące problemy:

    • Naprawiono brak możliwości skompilowania niektórych funkcji, takich jak mismatch(iter, iter, T[]), ze względu na interakcję między niestandardowym elementem _ITERATOR_DEBUG_ARRAY_OVERLOADS i algorytmami dwuzakresowymi.
  • Naprawiono naruszenia domyślnie wyłączonego ostrzeżenia C4242 w STL.
  • Naprawiono potencjalny błąd przepełnienia dla liczb całkowitych w obiekcie std::pop_heap.
  • Naprawiono potencjalne zawieszanie się w przypadku użycia flagi /clr:pure ze względu na wywołania metody LoadLibrary wstawiane do środowiska CLR podczas blokady ustawień regionalnych.

Debugowanie C++/CLI

  • Nowość Ewaluator wyrażeń C++/CLI teraz obsługuje funkcje debugera, takie jak Natvis, które były wcześniej obsługiwane tylko w przypadku aplikacji całkowicie natywnych. Teraz w mieszanych aplikacjach zarządzanych/natywnych, gdy obiekty są wyszczególnione w oknie zmiennej (lub wewnątrz etykietki danych), będą rozszerzane tak jak w aplikacjach całkowicie natywnych, zgodnie z definicją w wizualizatorach typu.

plugin-byid

Zestaw narzędzi platformy Clang/C2

Zintegrowano wersję oprogramowania Clang 3.8 wewnątrz platformy Clang/C2 i zapewniono zestaw narzędzi z hostowaniem 64-bitowym.

Środowisko MDD dla języka C++

Włączono obsługę najnowszego zestawu NDK systemu Android w wersji R11C oraz możliwość uaktualnienia bieżących projektów pod kątem najnowszego zestawu NDK.

TypeScript

Nowość Program Visual Studio 2015 Update 3 obejmuje obsługę języka TypeScript 1.8.34. Rozwiązano problem powodujący błąd braku pamięci w przypadku niektórych dużych projektów języka TypeScript korzystających z narzędzia AngularJS.

C# i Visual Basic

Nowość Zainwestowaliśmy w zmniejszenie zużycia pamięci i poprawę wydajności diagnostyki kodu. Zmniejsza to znacznie liczbę awarii spowodowanych brakiem pamięci, które występowały w poprzednich wersjach. Poprawiono wydajność działania diagnostyki kodu uruchomionej dla całego rozwiązania. Aby dowiedzieć się więcej o ulepszeniach wydajności diagnostyki kodu, przeczytaj informacje na stronie Porady: włączanie i wyłączanie pełnej analizy rozwiązania dla zarządzanego kodu w witrynie MSDN.

Wprowadzono następujące dodatkowe ulepszenia:

  • Opcja dodawania odwołania do pakietu NuGet jako szybkiej poprawki:

plugin-byid

Tę opcję można włączyć na karcie Narzędzia > Opcje > Edytor tekstu > C# > Zaawansowane w obszarze „Używane dyrektywy”:

plugin-byid

  • Ulepszono obsługę bibliotek klas przenośnych przeznaczonych dla platformy .NET Standard.
  • Zwiększono wydajność poleceń Przejdź do implementacji i Znajdź wszystkie odwołania dla języka C#. Możesz je wypróbować, zaznaczając obiekt, klikając go prawym przyciskiem myszy i wybierając je z menu.
  • Podczas stosowania akcji „Napraw wszystkie wystąpienia” do dokumentu/projektu/rozwiązania jest teraz wyświetlany pasek postępu.
  • Nowość Poprawiono wydajność podczas ponownego ładowania projektów C# i VB w dużych rozwiązaniach. Aby uzyskać więcej informacji i porad, przeczytaj artykuł Performance considerations for large solutions (Zagadnienia dotyczące wydajności w przypadku dużych rozwiązań).

Team Explorer

Nowość Naprawiono kilka błędów w programie Team Explorer:

  • Nie można wyświetlić zawartości pliku, który został usunięty z repozytorium Git.
  • Podczas wyświetlania historii gałęzi ikona Przejdź do elementu podrzędnego powinna być wyłączona, gdy fokus jest umieszczony na najnowszym zatwierdzeniu.
  • Podczas zmiany gałęzi przy użyciu programu Git.exe program Visual Studio może ulec awarii lub przejść w stan nieznany.
  • Podczas wyświetlania historii gałęzi w repozytorium Git występują błędy wyróżnienia na wykresie historii.
  • Podczas tworzenia gałęzi w programie Team Explorer skrót Alt+B dla polecenia Utwórz gałąź powoduje konflikt z menu Kompiluj.
  • W sytuacji wysokiego użycia pamięci podczas próby rozpakowania obiektu większego niż dostępna pamięć narzędzie Git wyświetla błąd „Nie znaleziono obiektu — brak pasującego luźnego obiektu ()” zamiast błędu braku pamięci.
  • Literówka w komunikacie o błędzie „... W celu otwarcia tego rozwiązania...”.
  • Podczas wyświetlania historii gałęzi po kliknięciu prawym przyciskiem myszy pierwszego zatwierdzenia w historii selekcjonowanie jest wyłączone.
  • Podczas tworzenia żądania ściągnięcia z programu Team Explorer menu kontekstowe strony gałęzi używa bieżącej gałęzi zamiast wybranej gałęzi.

Platforma Xamarin dla programu Visual Studio

Nowość Program Visual Studio 2015 Update 3 zawiera obecnie program Xamarin 4.1. Oprócz szeregu poprawek błędów ta wersja dodaje obsługę systemu tvOS, ulepsza obsługę katalogu zasobów systemu iOS, ulepsza środowisko edytowania plików XML i dodaje selektory dla implementacji protokołów SSL/TLS i HttpClient podczas tworzenia aplikacji dla systemu iOS. Aby uzyskać więcej informacji, zobacz informacje o wersji programu Xamarin.

Znane problemy

Pełny opis znanych problemów występujących w tej wersji zawiera następujący artykuł w witrynie MSDN: Znane problemy w programie Visual Studio Update 3