Проект не загружается из-за отсутствия файла SQLServer.targets после обновления до Visual Studio 2013
-
20-12-2019 - |
Вопрос
Обновившись до 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" />