无法使用数据库项目构建 .net 核心项目。错误 MSB4019

Can´t build .net core project with a database project. Error MSB4019

我有一个新的 .net Core 2.0 Web API 项目(在 Visual Studio 2017 版本 15.3.5 中),我 无法构建解决方案 如果我添加一个新的数据库项目。

error MSB4019: The imported project "C:\Program Files\dotnet\sdk.0.0\Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.

各种方案我都试过了

那么,为什么我可以将数据库项目添加到普通的 API 项目并且一切正常,但不能添加到 .net 核心项目?

数据库项目不能与 .net Core 一起使用吗?我已经搜索过这方面的信息,但很抱歉我找不到它。

我不知道该怎么做。希望有人能帮忙。

好的,我在我的电脑上找到了 Microsoft.Data.Tools.Schema.SqlTasks.targets 文件。

然后我需要卸载项目并编辑它

我改了这行

<SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>

我文件的硬编码路径

<SSDTExists Condition="Exists('C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>

现在它构建在我的计算机和 VSTS 上。

但我不知道为什么会这样。

我在 Azure DevOps CI/CD 管道和本地 VS Code 上构建 SQL 服务器项目时遇到了完全相同的问题。在 Azure DevOps 上,none 的预建构建任务对我有用,而在本地我只能在 Visual Studio 上编译 SQL 服务器项目,这很烦人。您的解决方案对我不起作用,按照您的建议进行操作后,我会收到 .dll 缺失错误,与第一个错误相关。

我通过避免向解决方案中添加 SQL 服务器项目来解决这个问题。

我是通过使用 MSBuild SDK, capable of producing a SQL Server Data-Tier Application package (.dacpac) from the set of SQL scripts. By adding this second project to the solution, I managed to continue taking advantage of linking the project to a live database through SQL Server Object Explorer on Visual Studio. I gave a more detailed explanation about my implementation in this answer 实现的。