Visual Studio 2015 Atualização 3

Last Update: 01/09/2017

Data de Lançamento: 27 de junho de 2016

Hoje, estamos felizes em anunciar o lançamento da Atualização 3 do Visual Studio 2015. Um dos principais problemas relatados na Atualização 2 estava relacionado ao alto consumo de memória. Nós abordamos esse problema na Atualização 3 RC, contatamos os clientes que tinham relatado o problema e recebemos confirmações positivas quanto à correção. Na Atualização 3, você verá que muitas das correções estão relacionadas a comentários dos clientes sobre desempenho e estabilidade. Se estas não eram as notas de versão que você estava aguardando, você obteve as notas de versão para a versão mais recente.

Envie seus comentários usando a opção Comentários no Visual Studio. Você também pode enviar sugestões no site UserVoice do Visual Studio 2015.

Baixar

Você pode baixar o Visual Studio 2015 de My.VisualStudio.com. O My.VisualStudio.com requer uma assinatura gratuita do Dev Essentials ou uma assinatura do Visual Studio.

Para obter informações adicionais, consulte Como instalar uma versão específica do Visual Studio.

Novidades

Outras alterações

Ferramentas para Apache Cordova

A Atualização 3 do Visual Studio 2015 inclui a Atualização 10 das Ferramentas para Apache Cordova, incluindo os aprimoramentos a seguir. Para obter mais informações sobre essa versão, consulte as notas de versão das Ferramentas para Apache Cordova para a Atualização 9 e a Atualização 10. Para obter as últimas notícias sobre nossas ferramentas, visite nosso Blog do Desenvolvedor no GitHub.

  • Adicionamos suporte para Cordova 6.1.1, a versão padrão para novos projetos.
  • Desativamos o Registro de Plug-in Cordova que era usado no Cordova 4.x, o que significa que agora precisamos de pelo menos o Cordova 5.x ou posterior para adicionar plug-ins.
  • A lista de Plug-ins Principais foi atualizada e agora inclui os plug-ins para cenários empresariais, como Intune, contrato do Azure, segurança e armazenamento local do SQLite.
  • Agora, você pode adicionar plug-ins do designer de configuração, seja pelo nome npm do pacote ou pela ID.

plugin-byid

  • Também é possível adicionar plug-ins que exigem parâmetros do designer de configuração.

plugin-parameters

Ferramentas de Análise do Desenvolvedor

Adicionamos os seguintes aperfeiçoamentos nas Ferramentas de Análise do Desenvolvedor v7.0.2:

  • Application Insights Trends, uma ferramenta para encontrar tendências na telemetria do seu aplicativo.
  • Novo Telemetria de exceção no CodeLens.
  • Informações de telemetria de produção adicionadas às exceções nas Ferramentas de Diagnóstico.
  • Suporte para adicionar o Application Insights a projetos do ASP.NET Core RC2 do Visual Studio.
  • Eventos de Ferramentas de Diagnóstico para projetos do ASP.NET 5 RC1 e do ASP.NET Core RC2.
  • Atualizações automáticas da Pesquisa do Application Insights quando filtros de detalhe, intervalos de tempo e eventos são selecionados.
  • Ir para Código de solicitações em Pesquisa.
  • Experiência de credenciais do HockeyApp melhorada.

Para obter mais informações, consulte as notas técnicas de versão na documentação do Microsoft Azure.

Depuração e Diagnósticos

Ferramentas de Diagnóstico para aplicativos executados em dispositivos de OneCore, incluindo HoloLens e IOT, foram adicionadas na Atualização 3.

Aprimoramentos de C++ Edit e Continue:

  • Melhor desempenho e confiabilidade quando FASTLINK está habilitado.
  • A aplicação bem-sucedida das alterações de código para bibliotecas estáticas não produz mais um Código Obsoleto.
  • Avisos de C4656 deixarão de aparecer para alterações de tipo positivos falsos durante a recompilação.
  • Suporte para adicionar um novo tipo com o mesmo nome cruzando várias unidades de compilação.

Aprimoramentos de depuração de interface do usuário XAML:

  • Sempre que o foco mudar no seu aplicativo, o novo recurso Acompanhar Foco na Árvore Visual Dinâmica fará com que a seleção na Árvore Visual Dinâmica atualize para o elemento focalizado atualmente.

Visual Studio IDE

Assinaturas e Chaves do Produto

Na Atualização 3, respondemos a comentários de clientes que usam assinaturas por meio de uma identidade online ou por chaves de produto para desbloquear o IDE das seguintes maneiras:

  • Você não precisa mais visitar https://my.visualstudio.com para ativar sua assinatura de nuvem do Visual Studio e pode começar a usar imediatamente o Visual Studio IDE assim que a inscrição for atribuída.
  • Melhoramos o tratamento de erro ao aplicar uma chave do produto.
  • Todas as operações de licenciamento e conta do usuário agora são protegidas usando HTTPS.
  • Fizemos aprimoramentos de acessibilidade na caixa de diálogo Configurações da Conta para ativar uma assinatura e inserir uma chave do produto.
  • Novo A reautenticação aproximadamente a cada 8 dias não é mais necessária para manter a conta de personalização ativa e sincronizar as configurações de roaming.

Ferramentas para Aplicativos Universais do Windows

A Atualização 3 do Visual Studio 2015 vem com vários aprimoramentos para as Ferramentas para aplicativos Universais do Windows. Uma das principais melhorias permite que você entre com credenciais do Azure Active Directory para uma conta de Repositório do AAD ao criar um pacote para enviar para a Windows Store. Depois que o projeto tiver sido associado à Windows Store, você não precisará entrar para criar um pacote para enviar ao Repositório.

.NET Native para Aplicativos universais do Windows

O .NET Native 1.4 é uma pequena versão de serviço que melhora o desempenho, soluciona vários bugs relatados por clientes e melhora os tempos de compilação do build de Versão de aplicativos grandes. Aplicativos XAML e jogos Unity que usarem o .NET Native 1.4 terão melhor desempenho de tempo de execução. Essas melhorias foram realizadas aumentando a velocidade das chamadas à API nativas e de reflexão.

Ferramentas de Arquitetura

Respondemos a comentários dos clientes sobre como melhorar o desempenho e a confiabilidade.

Designers de Gráficos Específicos de Domínio (incluindo EDMX e DBML)

No Windows 10, o Visual Studio não deixa mais de responder quando você está abrindo ou tentando editar diagramas grandes EDMX ou DBML enquanto o teclado na tela é exibido.

Mapa de Códigos

  • O Visual Studio não deixa mais de responder quando você tenta "Gerar Mapa de Código para Solução" se a solução contiver projetos do instalador (.vdproj).
  • O Visual Studio não deixa mais de responder quando você executa um comando de mapa de código no editor de códigos e fecha a janela Mapa de Código assim que ela aparece.

Validação da Camada

  • Ao criar uma solução tendo um projeto de modelagem contendo um diagrama de Camada com uma ação de Validar, o núcleo da CPU não é mais usado após a conclusão do build.
  • Agora, é possível validar um diagrama de camada quando seu projeto de modelagem pai estiver fazendo referência a bibliotecas PCL (por exemplo, ODP.Net).

Ferramentas Node.js para Visual Studio

Novo As Ferramentas Node.js 1.2 RC para Visual Studio agora estão disponíveis para download. Esperamos que esta versão forneça estabilidade e desempenho significativamente melhores, incluindo a redução de falhas por falta de memória vistas em versões anteriores.

Outros destaques incluem:

  • ES6 IntelliSense melhor e mais rápido
  • Depuração mais confiável
  • Experiências aprimoradas de Teste da Unidade (incluindo suporte para Fita)
  • Comando .npm em mais tipos de projeto

Para obter todas as informações e downloads, consulte a Página de versão RC das Ferramentas Node.js 1.2 RC.

Ferramentas de Desenvolvedor da Web

Para projetos de Aplicativo Web ASP.NET, quando a caixa de seleção "Habilitar Editar e Continuar" está desmarcada, o processo IIS Express não deixará mais de funcionar sempre que você parar a depuração.

Visual C++

Aprimoramentos, como novas verificações e mensagens de aviso para o Compilador do C++, bem como melhorias de desempenho e suporte para codificação com C# e Visual Basic, foram incluídos na Atualização 3.

Compilador C++

  • Agora verificamos o acesso de um construtor de copiar/mover trivial excluído. Sem a verificação, podemos incorretamente chamar o construtor de cópia padrão (em que a implementação pode esta malformados), provocando potencial geração de código inválido de tempo de execução.
  • Std::is_convertible agora detecta corretamente a autoatribuição de um tipo de classe quando o construtor de cópia é excluído ou privado.
  • Como a última fase da conclusão da substituição do suporte de ATL atribuído iniciado no Visual Studio 2008, adicionamos um novo aviso de substituição ao compilador. Com a Atualização 3 do Visual Studio 2015, os usos de código de ATL atribuído gerarão um aviso de nível 1 ativado por padrão. C4467
  • Ao usar arquivos PCH, diretórios -I include incompatíveis para o compilador entre compilações -Yc e -Yu agora produzirão um novo aviso. C4599
  • Ao usar arquivos PCH, diretivas #include incompatíveis nos arquivos de origem entre compilações -Yc e -Yu agora gerarão um aviso. C4598

Para obter mais informações sobre como essas alterações podem afetar seu código existente, consulte Guia de portabilidade e de atualização do Visual C++ no MSDN.

Bibliotecas C++

  • Restauramos o desempenho do modo de depuração ao destruir intervalos de objetos triviais que retornaram na Atualização 2, como no vetor.
  • Implementamos as características de swap do documento de trabalho C++17 da proposta P0185 Adding [nothrow-]swappable traits (P0185 Adicionando características nothrow-swappable). Como um recurso C++17 especulativo, as características (is_swappable, is_swappable_with, is_nothrow_swappable e is_nothrow_swappable_with) serão apenas visíveis e as restrições em std::swap serão apenas ativas, ao compilar com /std:c++latest.
  • Removemos as chamadas de evento ETW de vcruntime140.dll e bibliotecas estáticas que anteriormente eram acionadas durante a inicialização do processo e dllmain.
  • Novo Removemos o comprimento do nome do símbolo em máquinas comuns usadas por contêineres STL, como std::vector, reduzindo a probabilidade de avisos C4503. Por exemplo, o seguinte tipo não gera mais um aviso: concurrency::concurrent_unordered_map<wstring, vector<pair<uint64_t, vector<uint8_t>>>>.

  • ATL/MFC/AMP/PPL: muitas correções de conformidade relacionadas a pesquisa em duas fases, como segue:

    • _com_ptr_t agora tem um construtor de movimentação e um operador de atribuição de movimentação.
    • MFC: corrigido o tratamento de valores HMENU que ocasionalmente impediam a exibição correta de menu em aplicativos de 64 bits.

    • ATL/MFC: não emitem mais os seguintes avisos:

    • Substituição/ocultação de função: C4263, C4264, C4266
    • Especificação de exceção de incompatibilidade: C4986
    • /analyze: C6386

    • ATL: todas as variações de AtlThrow agora estão corretamente marcadas com __declspec(noreturn). Isso evita a emissão de avisos incorretos de SAL.

    • ATL: várias anotações de SAL corrigidas/aprimoradas.

    • /std:c++latest habilita os seguintes recursos novos: P0025R1 "clamp()", P0185R1 "is_swappable, is_nothrow_swappable" e P0272R1 "Non-const basic_string::data()".

    • /std:c++latest também controla a remoção dos seguintes recursos antigos: N4190 "Removing auto_ptr, random_shuffle(), And Old Stuff", P0004R1 "Removing Deprecated Iostreams Aliases", LWG 2385 "function::assign allocator argument doesn't make sense" e vários recursos não Padrão (o namespace std::tr1, alguns maquinários apenas de TR1 e o struct std::identity).

    • A geração de código inválida silenciosa em atomic<int64_t>/atomic<uint64_t> em x86 foi corrigida.

    • A STL agora evita o uso de "estáticas mágicas" com proteção de thread, exceto quando absolutamente necessário, melhorando a geração de código.

    • O construtor de encaminhamento perfeito da tupla agora evita superar a competição do construtor de cópia, corrigindo erros do compilador em determinados cenários.

  • Co-rotinas:

    • O seguinte foi preterido: palavras-chave __yield_value & __await. Use co_await / co_yield em seu lugar.
    • Adicionado o aviso de substituição para: membros to_address e from_promise da classe coroutine_handle. Em vez de coroutine_handle::to_address(), use coroutine_handle::address().
    • Em vez de coroutine_handle::from_promise(Promise *P), use coroutine_handle::from_promise(Promise &P).
  • Melhoramos o desempenho do seguinte: std::equal e std::lexicographical_compare por expedição mais agressiva para memcmp e memchr, resultando em grandes aperfeiçoamentos em alguns cenários. Por exemplo: equal(char,char,char, char) em plataformas de 64 bits.

    • depurar builds significativamente reduzindo o número de chamadas de função de contabilidade no nosso mecanismo de depuração do iterador.
    • string::push_back melhorou mais 40% com relação à Atualização 2 em compilações de versão, com melhorias mais substanciais em builds de depuração. (Isso além de grandes melhorias de desempenho aqui que foram enviadas na Atualização 2).
    • Compilações de depuração em todos os algoritmos padrão foram aprimoradas, eliminando vários tipos de chamadas de suporte de metaprogramação de modelo vazio (por exemplo, _Iter_cat) em todos os algoritmos que usam predicados reduzindo o número de cópias de predicado.
    • std::mismatch em _ITERATOR_DEBUG_LEVEL 1 e 2 por intervalo verificando o segundo intervalo, quando possível, antes da iteração.
  • Aplicamos diagnóstico aprimorado para mensagens _SCL_INSECURE_DEPRECATE para os algoritmos restantes (na Atualização 2, apenas um pequeno número de algoritmos foi conectado ao novo mecanismo de reprovação). Isso também melhora a experiência de depuração ao depurar para os algoritmos padrão, uma vez que não há mais nenhuma interação pré-processador _ITERATOR_DEBUG_LEVEL declarando várias cópias de algoritmos padrão. Também corrigimos o seguinte:

    • Corrigimos a incapacidade de compilar algumas funções, como mismatch(iter, iter, T[]) devido à interação entre nossos algoritmos não padrão _ITERATOR_DEBUG_ARRAY_OVERLOADS e de intervalo duplo.
  • Corrigimos as violações do aviso C4242 desativado por padrão no STL.
  • Corrigimos um possível bug de estouro de inteiro no std::pop_heap.
  • Corrigimos a suspensão em potencial em /clr:pure devido a chamadas LoadLibrary inseridas por CLR, ao mesmo tempo mantendo o bloqueio de localidade.

Depuração C++/CLI

  • Novo O avaliador de expressão de C++/CLI agora dá suporte a recursos do depurador, como Natvis, que anteriormente tinham suporte somente para aplicativos nativos puros. Agora, em um aplicativo gerenciado/nativo misto, quando objetos forem listados em uma janela variável (ou dentro de um datatip), eles se expandirão exatamente como fazem em um aplicativo nativo puro, conforme definido pelos visualizadores de tipo.

plugin-byid

Conjunto de ferramentas de plataforma Clang/C2

Integramos a versão Clang 3.8 ao Clang/C2 e fornecemos um conjunto de ferramentas hospedado de 64 bits.

MDD de C++

Habilitamos suporte para o R11C da versão mais recente do NDK do Android e a capacidade de atualizar os projetos atuais para focar no NDK mais recente.

TypeScript

Novo A Atualização 3 do Visual Studio 2015 inclui TypeScript 1.8.34. Corrigimos um erro de memória insuficiente com alguns projetos grandes TypeScript que usam o AngularJS.

C# e Visual Basic

Novo Investimos na redução da pegada de memória na melhoria do desempenho do diagnóstico de código. Isso reduzirá muito as falhas de memória insuficiente vistas em versões anteriores. Melhoramos o desempenho de diagnóstico de código em execução em uma solução inteira. Para saber mais sobre os aprimoramentos de desempenho de diagnóstico do código, leia a página sobre How to: Enable and Disable Full Solution Analysis for Managed Code (Como habilitar e desabilitar análise de solução completa para código gerenciado) no MSDN.

Aprimoramentos adicionais incluem os seguintes:

  • Uma opção para adicionar uma referência a um pacote do NuGet como uma correção rápida:

plugin-byid

Você pode habilitar essa opção em Ferramentas > Opções > Editor de Texto > C# > Avançado em "Usando Diretivas":

plugin-byid

  • Aprimoramos o suporte para bibliotecas de classes Portáteis focadas no .NET Platform Standard.
  • Acrescentamos melhorias de desempenho para a Implementação GoTo do C# e Localizar Todas as Referências. Você pode tentar isso selecionando um objeto, clicando com o botão direito neles e então selecionando-os no menu.
  • Ao aplicar uma ação de "corrigir tudo" a documento/projeto/solução, agora podemos exibir uma barra de progresso.
  • Novo Melhor desempenho ao recarregar projetos C# e VB em soluções grandes. Para obter mais informações e dicas, leia: Considerações sobre desempenho para soluções grandes.

Team Explorer

Novo Vários bugs foram corrigidos no Team Explorer:

  • Não é possível exibir o conteúdo de um arquivo que foi excluído de um repositório Git.
  • Ao exibir o histórico de uma ramificação, o ícone Ir para Filho deve estar desabilitado quando o foco for a última confirmação.
  • Ao alterar ramificações usando Git.exe, o Visual Studio pode falhar ou entrar em um estado desconhecido.
  • Ao exibir o histórico de uma ramificação em um repositório Git, o realce no gráfico de histórico apresenta problemas.
  • Ao criar uma ramificação no Team Explorer, o atalho Alt+B para Criar Ramificação entra em conflito com o menu Build.
  • Em uma situação de uso intenso de memória, ao tentar descompactar um objeto maior do que a memória disponível, o Git apresentará um erro de "Objeto não encontrado - nenhum arquivo flexível correspondente a ()" em vez de um erro de falta de memória.
  • Erro de digitação na mensagem de erro "... Para abrir esta solução... ".
  • Ao exibir o histórico de uma ramificação e clicar com o botão direito do mouse no histórico da primeira confirmação, a Cherry Pick está desabilitado.
  • Ao criar uma solicitação pull na página de ramificações do Team Explorer, o menu de contexto usa a ramificação atual em vez da ramificação selecionada.

Xamarin para Visual Studio

Novo A Atualização 3 do Visual Studio 2015 agora inclui o Xamarin 4.1. Além de várias correções de bug, esta versão adiciona suporte para tvOS, melhora o suporte para o Catálogo de Ativos do iOS, melhora a experiência de edição XML e adiciona seletores para SSL/TLS e implementações HttpClient durante a criação de aplicativos iOS. Para obter mais informações, consulte as Notas de Versão do Xamarin.

Problemas Conhecidos

Para obter uma descrição completa dos problemas conhecidos desta versão, consulte o seguinte artigo do MSDN: Problemas Conhecidos da Atualização 3 do Visual Studio