Eu tenho uma solução em Visual Studio 2012 com 170 projetos C # nele. Preciso redirecionar todos os projetos do .NET Framework 4.0 para 4.5.2.
Prefiro deixar o Visual Studio lidar com isso acessando as propriedades de cada projeto, alterando a estrutura de destino e permitindo que o Visual Studio faça as alterações necessárias nos arquivos .csproj.
Percebi que essas mudanças incluem a adição de algumas novas tags XML ao .csproj, dependendo de alguns atributos do projeto atual.
Como posso redirecionar em lote todos os 170 projetos C # sem apenas usar uma ferramenta de substituição de texto para substituir o número da versão de destino? Eu quero que o Visual Studio faça todas as modificações e adições de tag necessárias e a substituição sozinha não permitirá que isso aconteça.
fonte
Respostas:
A documentação do MSDN " Guia de migração para o .NET Framework 4.5 " e " Como configurar um aplicativo para oferecer suporte ao .NET Framework 4 ou 4.5 " discute apenas a modificação de projetos. Não há detalhes sobre como aplicar alterações em toda a solução de uma vez, nem vi uma função no VS que ofereça suporte a isso.
No entanto, há uma extensão (bem avaliada) chamada Target Framework Migrator disponível na galeria do Visual Studio, que oferece suporte à atualização para 4.5.2 (bem como às versões mais recentes **) e parece que fará exatamente o que você deseja. O código-fonte está disponível no GitHub , se você estiver interessado.
Observe que a falta desse recurso pode ser intencional (e não apenas uma omissão). Estou apenas supondo, mas talvez a MS descubra que apenas os projetos que precisam dos novos Frameworks serão atualizados. FWIW, se você acabar atualizando alguns projetos que são compartilhados com outras soluções, essas soluções podem falhar na construção até que sejam atualizadas também.
Dito isso, se você está em uma pequena loja com apenas uma (ou algumas) soluções e deseja atualizar tudo de uma vez, talvez a ferramenta acima funcione para você.
Se você não conseguir fazê-lo funcionar com uma versão mais recente do .NET Framework, verifique os PRs e problemas existentes para obter as correções, mas talvez seja necessário aplicá-los você mesmo. Por exemplo, alguém postou uma correção para .NET Framework v 4.7.1 . Esperançosamente, eles irão se fundir, mas eu não prenderia minha respiração.
Se alguém mais está vendo o mesmo erro que Anas (nos comentários), aqui está um problema do GitHub de algumas semanas atrás e outro problema possivelmente relacionado de 2017. Considere marcá-los com um polegar e adicionar mais detalhes se você estiver tendo o mesmo problema .
fonte
Para uma solução .NET Framework, um simples " Substituir nos arquivos " funcionou para mim:
por exemplo : Do .NET Framework 4.5.2 ao .NET Framework 4.7.2
Nos arquivos package.config , substitua todos
para
Em arquivos * .csproj , substitua todos
para
fonte
Como o Target Framework Migrator está quebrado, lancei minha própria pesquisa / substituição (usando git bash, funciona bem no Windows); Basicamente, ele muda o v4.6.x para v4.7.2 , então ele converte de volta os arquivos usando o infame CRLF do DOS:
fonte
Update-Package -ReInstall
faço maravilhas. Obrigado!Eu mesmo desenvolvi uma ferramenta simples para migrar as versões de framework de destino para uma solução inteira, porque a Target Framework Migrator Extension não oferece suporte ao Visual Studio 2017. Baixe a ferramenta do meu repositório GitHub https://github.com/Xpitfire/TargetFrameworkMigrator
Eu sei que este não é o melhor caminho a seguir, mas funcionou para mim e talvez também ajude outra pessoa.
fonte
O Target Framework Migrator é muito útil. Por padrão, ele vem até a v4.7. No entanto, é fácil adicionar suporte para v4.7.1, v4.7.2 e v4.8.
Encontre o arquivo Frameworks.xml na pasta C: \ Users {nome de usuário} \ AppData \ Local \ Microsoft \ VisualStudio \ e edite adicionando estas versões de framework:
Depois de reiniciar o Visual Studio, você verá novas versões.
fonte
fonte