El proyecto no se carga debido a que falta el archivo SqlServer.targets después de actualizar a Visual Studio 2013

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

Pregunta

Después de actualizar a Visual Studio 2013, descubrí que un proyecto SQL antiguo no se carga cuando intento abrir una solución.El error mostrado es:

No se encontró el proyecto importado "C:\Program Files (x86)\MSBuild\12.0\bin\SqlServer.targets".Confirme que la ruta en la declaración sea correcta y que el archivo exista en el disco.C:\Alguna uta\A\Proyecto\Database.sqlproj

En mi .sqlproj archivo tengo la linea

<Import Project="$(MSBuildToolsPath)\SqlServer.targets" />

que en Visual Studio 2012 se resuelve a C:\Windows\Microsoft.NET\Framework\v4.0.30319\SqlServer.targets pero en Visual Studio 2013 esto se resuelve C:\Program Files (x86)\MSBuild\12.0\bin\SqlServer.targets.sin embargo, el SqlServer.targets El archivo no se encuentra en ninguna de estas ubicaciones.

Presumiblemente, esto se debe a que MSBuild se convierte en parte de Visual Studio, en lugar de ser parte de .Net Framework.

¿Alguien sabe cómo solucionar este problema y migrar este proyecto a Visual Studio 2013?

¿Fue útil?

Solución

Tuve el mismo problema al intentar crear una solución VS 2010 en VS 2013.La solución fue actualizar primero el archivo de la solución a VS 2013.Después de eso funcionó sin mayores modificaciones.

Otros consejos

Recién copiado SqlServer.targets de C:\Windows\Microsoft.NET\Framework\v3.5 a C:\Program Files (x86)\MSBuild\12.0\Bin y ayuda.VS2013 ahora puede abrir el proyecto anterior.

Tuve un problema similar al actualizar de Visual Studio 2008 a 2013.Me tomó un tiempo, pero tuve que instalar SSDT para VS 2013 (nuevamente), luego creé un nuevo proyecto de base de datos para encontrar la ruta relativa al nuevo archivo sqlserver.targets.Debería ser el siguiente:

  <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" />

El mayor obstáculo que encontré para corregir este error fue intentar comprender el mensaje de error proporcionado (BC2014:el valor 'base de datos' no es válido para la opción 'destino')

¡Espero que esto ayude!

Tuve el mismo problema y lo resolví de esta manera:Simplemente cree un archivo llamado 'SQLServer.objetivos' en 'C:\Windows\Microsoft.NET\Framework\v4.0.30319' con el siguiente contenido:

<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>

Buena suerte.

Esto también puede ocurrir al abrir un proyecto anterior en Windows 10.

Tuve el mismo problema (no se encontró SqlServer.targets) al abrir un antiguo ensamblado CLR de SQL Server en Visual Studio 2010 en Windows 10, la misma versión utilizada originalmente para escribir el ensamblado.

Se confirmó que el mismo proyecto se abrió perfectamente en Visual Studio 2010 en una computadora con Windows 7.

Solución

Preste atención al mensaje de error.En mi caso fue:

No se encontró el proyecto importado “C:\Windows\Microsoft.NET\Framework\v4.0.30319\SqlServer.targets”.Confirme que la ruta en la declaración sea correcta y que el archivo exista en el disco.

Simplemente copie SqlServer.targets desde la ubicación indicada en la respuesta de Vladimir Dronov, "C:\Windows\Microsoft.NET\Framework\v3.5\SqlServer.targets", al directorio indicado en el mensaje de error.

En mi caso, fue "C:\Windows\Microsoft.NET\Framework\v4.0.30319\".

El error resultante de varias de estas soluciones

Publiqué una pregunta específica (Error 02019 de C# VS 2013:Tipo de destino no válido para /target:debe especificar CSC 'exe', 'winexe', 'library', 'module', 'appcontainerexe' o 'winmdobj') con respecto al error de compilación fatal descrito por Chris Torng debajo de la respuesta de Vladimir Dronov:

Error 1 02019:Tipo de destino no válido para /target:debe especificar CSC 'exe', 'winexe', 'library', 'module', 'appcontainerexe' o 'winmdobj'


La solución

Pude deshacerme del error relacionado con los problemas de compatibilidad de la herramienta de desarrollo de SQL Server en VS2013 Community Edition siguiendo los consejos de este foro:

https://connect.microsoft.com/SQLServer/feedbackdetail/view/979839

Publicado por bsclifton el 15/11/2014 a las 7:18

También tuve este problema con la edición Community 2013;Ir a Herramientas->Extensiones y actualizaciones y actualizar "Actualización de Microsoft SQL Server para herramientas de base de datos" resolvió el problema :)

Si esto no funciona para usted, le recomiendo que consulte ese foro, ya que ofrece otras ideas sobre cómo solucionar el problema.

Solución 1:

Si el proyecto es un archivo .csproj, debe verificar si Visual Studio también generó un archivo .sqlproj durante la actualización.Si ese es el caso, puedes agregarlo a la solución.

Solución 2:

Puede intentar cambiar la siguiente línea en el archivo .sqlproj:

<Import Project="$(MSBuildToolsPath)\SqlServer.targets" />

a

<Import Project="$(MSBuildBinPath)\SqlServer.targets" />
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top