我有一个新的.net Core 2.0 Web API项目(在Visual Studio 2017版本15.3.5中),如果我添加一个新的数据库项目,我无法构建解决方案。
错误MSB4019:找不到导入的项目“C:\ Program Files \ dotnet \ sdk \ 2.0.0 \ Microsoft \ VisualStudio \ v11.0 \ SSDT \ Microsoft.Data.Tools.Schema.SqlTasks.targets”。确认声明中的路径是否正确,以及该文件是否存在于磁盘上。
我尝试了各种解决方案
那么为什么我可以将一个数据库项目添加到一个普通的API项目中,一切正常但不适用于.net核心项目?
数据库项目不能与.net Core一起使用吗?我已经搜索了相关信息,但很抱歉我找不到它。
我不知道该怎么做。希望有人可以提供帮助。
答案 0 :(得分:0)
好的,我设法在我的计算机上找到了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上。
但为什么这就是我不知道的。
答案 1 :(得分:0)
我在使用Azure DevOps CI / CD管道以及本地在VS Code上构建SQL Server项目时遇到了完全相同的问题。在Azure DevOps上,没有一个预建的构建任务对我有用,在本地,我只能在Visual Studio上编译SQL Server项目,这很烦人。您的解决方案对我不起作用,按照您的建议进行操作后,我会遇到与第一个错误相关的.dll
丢失错误。
我通过避免将SQL Server项目添加到解决方案中来解决了这个问题。
我通过使用MSBuild SDK实现了这一目标,该功能能够从一组SQL脚本生成SQL Server数据层应用程序包(.dacpac
)。通过将第二个项目添加到解决方案中,我设法继续利用通过Visual Studio上的SQL Server Object Explorer将项目链接到实时数据库的优势。在此answer中,我对自己的实现进行了更详细的说明。