Projeto falha ao carregar devido a falta SqlServer.metas de arquivos após a atualização para o Visual Studio 2013

StackOverflow https://stackoverflow.com//questions/20006482

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?

Foi útil?

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" />
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top