无法使用数据库项目构建 .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.
各种方案我都试过了
- 几乎安装了 Visual Studio 安装程序
中缺少的所有内容
- 已安装 Visual Studio 构建工具 2017
- 已修复Visual Studio
- 不幸的是,我试图在 C:\ 上找到 Microsoft.Data.Tools.Schema.SqlTasks.targets 文件以在项目文件中添加对它的引用(然后我不知道在 VSTS 中构建解决方案时是否有效)。
那么,为什么我可以将数据库项目添加到普通的 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 实现的。
我有一个新的 .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.
各种方案我都试过了
- 几乎安装了 Visual Studio 安装程序 中缺少的所有内容
- 已安装 Visual Studio 构建工具 2017
- 已修复Visual Studio
- 不幸的是,我试图在 C:\ 上找到 Microsoft.Data.Tools.Schema.SqlTasks.targets 文件以在项目文件中添加对它的引用(然后我不知道在 VSTS 中构建解决方案时是否有效)。
那么,为什么我可以将数据库项目添加到普通的 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 实现的。