Проект не загружается из-за отсутствия файла SQLServer.targets после обновления до Visual Studio 2013

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

Вопрос

Обновившись до Visual Studio 2013, я обнаружил, что старый SQL-проект не загружается при попытке открыть решение.Отображаемая ошибка такова:

Импортированный проект "C:\Program Files (x86)\MSBuild\12.0\bin\SQLServer.targets" не был найден.Убедитесь, что путь в объявлении указан правильно и что файл существует на диске.C:\Some\Path o\Project\Database.sqlproj

В моем .sqlproj файл, в котором у меня есть строка

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

который в Visual Studio 2012 преобразуется в C:\Windows\Microsoft.NET\Framework\v4.0.30319\SqlServer.targets но в Visual Studio 2013 это решается следующим образом C:\Program Files (x86)\MSBuild\12.0\bin\SqlServer.targets.Однако, в SqlServer.targets файл не находится ни в одном из этих расположений.

Предположительно, это связано с тем, что MSBuild становится частью Visual Studio, а не .Net Framework.

Кто-нибудь знает, как устранить эту проблему и перенести этот проект в Visual Studio 2013?

Это было полезно?

Решение

У меня возникла такая же проблема при попытке создать решение для VS 2010 под управлением VS 2013.Исправление заключалось в том, чтобы сначала обновить файл решения до версии 2013.После этого он заработал без дальнейших изменений.

Другие советы

Просто скопировал SqlServer.targets от C:\Windows\Microsoft.NET\Framework\v3.5 к C:\Program Files (x86)\MSBuild\12.0\Bin и это помогает.VS2013 теперь может открыть старый проект.

У меня возникла аналогичная проблема при обновлении с Visual Studio 2008 до 2013.Это заняло некоторое время, но мне пришлось установить SSDT для VS 2013 (снова), затем я создал новый проект базы данных, чтобы узнать относительный путь к новому файлу sqlserver.targets.Это должно быть следующим образом:

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

Самым большим препятствием, которое я обнаружил для исправления этой ошибки, была попытка понять предоставленное сообщение об ошибке (BC2014:значение "база данных" недопустимо для параметра "цель")

Надеюсь, это поможет!

У меня была такая же проблема, и я решил ее таким образом:Просто создайте файл с именем 'SQLServer.цели"включено "C:\Windows\Microsoft.NET\Framework\v4.0.30319" со следующим содержанием:

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

Удачи.

Это также может произойти при открытии более старого проекта в Windows 10

У меня была такая же проблема (SQLServer.targets не был найден) при открытии старой сборки CLR SQL Server в Visual Studio 2010 в Windows 10, та же версия, которая первоначально использовалась для написания сборки.

Подтвердил, что тот же проект отлично открылся в Visual Studio 2010 на компьютере с Windows 7.

Решение

Обратите внимание на сообщение об ошибке.В моем случае это было:

Импортированный проект “C:\Windows\Microsoft.NET\Framework\v4.0.30319\SqlServer.targets” не найден.Убедитесь, что путь в объявлении указан правильно и что файл существует на диске.

Просто скопируйте SQLServer.targets из расположения, указанного в ответе Владимира Дронова, "C:\Windows\Microsoft.NET\Framework\v3.5\SqlServer.targets", в каталог, указанный в сообщении об ошибке.

В моем случае это было "C:\Windows\Microsoft.NET\Framework\v4.0.30319 \".

Ошибка, возникающая в результате нескольких из этих решений

Я задал конкретный вопрос(Ошибка C# VS 2013 02019:Недопустимый целевой тип для /target:необходимо указать 'exe', 'winexe', 'библиотека', 'модуль', 'appcontainerexe' или 'winmdobj' CSC) относительно фатальной ошибки сборки, описанной Крисом Торнгом ниже ответа Владимира Дронова:

Ошибка 1 02019:Недопустимый целевой тип для /target:необходимо указать 'exe', 'winexe', 'библиотека', 'модуль', 'appcontainerexe' или 'winmdobj' CSC


Исправление

Я смог избавиться от ошибки, связанной с проблемами совместимости инструментов разработки SQL Server в версии сообщества VS2013, следуя советам на этом форуме:

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

Опубликовано bsclifton 15/11/2014 в 7:18 утра

У меня тоже была эта проблема с выпуском Community 2013;Переход в Сервис-> Расширения и обновления и обновление "Microsoft SQL Server Update for database tooling" устранили проблему :)

Если это у вас не сработает, я бы рекомендовал проверить этот форум, поскольку он предлагает несколько других идей о том, как устранить проблему

Решение 1:

Если проект представляет собой файл .csproj, вам следует проверить, сгенерировала ли Visual Studio также файл .sqlproj при обновлении.Если это так, вы можете добавить это в решение вместо этого.

Решение 2:

Вы можете попробовать изменить следующую строку в файле .sqlproj:

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

к

<Import Project="$(MSBuildBinPath)\SqlServer.targets" />
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top