Projeto falha ao carregar devido a falta SqlServer.metas de arquivos após a atualização para o Visual Studio 2013
-
20-12-2019 - |
Pergunta
Depois de atualizado para o Visual Studio 2013, descobri que um antigo projeto SQL falha ao carregar quando eu tenta abrir uma solução.O erro apresentado é:
O projeto importado "C:\Program Files (x86)\MSBuild\12.0\bin\SqlServer.alvos" não foi encontrado.Confirmar que o caminho em que a declaração é correta, e que o arquivo não existe no disco.C:\Some\Path o\Project\Database.sqlproj
No meu .sqlproj
arquivo de eu ter a linha
<Import Project="$(MSBuildToolsPath)\SqlServer.targets" />
que no Visual Studio 2012 resolve C:\Windows\Microsoft.NET\Framework\v4.0.30319\SqlServer.targets
mas no Visual Studio 2013 este resolve C:\Program Files (x86)\MSBuild\12.0\bin\SqlServer.targets
.No entanto, o SqlServer.targets
o arquivo está em nenhum desses locais.
Presumivelmente, isso é devido a MSBuild tornando-se parte do Visual Studio, ao invés de ser parte do .Net Framework.
Alguém sabe como corrigir este problema e para migrar esse projeto para o Visual Studio 2013?
Solução
Eu tive o mesmo problema ao tentar criar uma VS de solução de 2010, sob VS 2013.A correção foi para atualizar o arquivo de solução para VS 2013 primeiro.Depois disso ele trabalhou sem modificações adicionais.
Outras dicas
Apenas copiado SqlServer.targets
a partir de C:\Windows\Microsoft.NET\Framework\v3.5
para C:\Program Files (x86)\MSBuild\12.0\Bin
e isso ajuda.VS2013 agora é capaz de abrir o projeto antigo.
Eu tive um problema semelhante quando atualizando a partir do Visual Studio 2008 para 2013.Demorou algum tempo, mas eu tinha que instalar o SSDT para VS 2013 (de novo), então eu criei um novo projeto de banco de dados para descobrir o caminho relativo para o novo sqlserver.metas de arquivo.Ele deve ser como segue:
<Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
<Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
O maior obstáculo que encontrei para corrigir este erro foi tentar compreender a mensagem de erro fornecida (BC2014:o valor de 'banco de dados' é inválido para a opção 'destino')
Espero que isso ajude!
Eu tinha o mesmo problema e resolvi assim:Basta criar um arquivo chamado 'SQLServer.objectivos'em 'C:\Windows\Microsoft.NET\Framework\v4.0.30319"com o seguinte conteúdo:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SqlClrTargetsFullPath>$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlClr.targets</SqlClrTargetsFullPath>
</PropertyGroup>
<Import Project="$(SqlClrTargetsFullPath)" Condition="Exists('$(SqlClrTargetsFullPath)')"/>
</Project>
Boa sorte.
Isso também pode ocorrer quando a abertura de um antigo projeto no Windows 10
Eu tive o mesmo problema (SqlServer.metas não foi encontrado) ao abrir um velho de CLR do SQL Server assembleia em 2010 de Visual Studio no Windows 10, a mesma versão usada originalmente para escrever a assembleia.
Confirmado o mesmo projeto aberto perfeitamente bem no Visual Studio 2010 em um computador com Windows 7.
Solução
Preste atenção à mensagem de erro.No meu caso foi:
O projeto importado "C:\Windows\Microsoft.NET\Framework\v4.0.30319\SqlServer.targets" não foi encontrado.Confirmar que o caminho em que a declaração é correta, e que o arquivo não existe no disco.
Basta copiar SqlServer.metas do local indicado na Vladimir Dronov a resposta, "C:\Windows\Microsoft.NET\Framework\v3.5\SqlServer.targets" para o diretório indicado na mensagem de erro.
No meu caso, que foi "C:\Windows\Microsoft.NET\Framework\v4.0.30319\".
O Erro Resultante de Várias destas Soluções
Eu postei uma pergunta específica (C# VS 2013 Erro 02019:Inválido o tipo de destino para /público-alvo:tem de especificar 'exe', 'winexe', 'biblioteca', 'módulo', 'appcontainerexe' ou 'winmdobj' CSC) sobre o fatal erro de compilação descrito por Chris Torng abaixo Vladimir Dronov a resposta:
Erro 1 02019:Inválido o tipo de destino para /público-alvo:tem de especificar 'exe', 'winexe', 'biblioteca', 'módulo', 'appcontainerexe' ou 'winmdobj' CSC
A Correcção
Eu era capaz de livrar-se do erro relacionado ao SQL Server dev ferramenta de problemas de compatibilidade em VS2013 Community Edition seguindo os conselhos deste fórum:
https://connect.microsoft.com/SQLServer/feedbackdetail/view/979839
Postado por bsclifton no 11/15/2014 às 7:18 AM
Tinha esse problema também com a Comunidade, a edição de 2013;Vá para Ferramentas->Extensões e Atualizações e actualização "Actualização do Microsoft SQL Server para o banco de dados de ferramentas" resolvido o problema :)
Se isso não funcionar para você, eu recomendo verificar que o fórum oferece várias outras idéias de como corrigir o problema
Solução 1:
Se o projeto for .csproj arquivo, você deve verificar se o Visual Studio também gerou um .sqlproj ficheiro durante a actualização.Se for esse o caso, você pode acrescentar que a solução em vez disso.
Solução 2:
Você pode tentar alterar a seguinte linha no .sqlproj arquivo:
<Import Project="$(MSBuildToolsPath)\SqlServer.targets" />
para
<Import Project="$(MSBuildBinPath)\SqlServer.targets" />