10

无法使用“dotnet”命令行工具构建 .Net .sqlproj。这是错误:

dotnet\sdk\3.1.300\Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" was not found

我已安装 SSDT 工具,但在上述位置不可用。

注意:使用 Visual Studio 和 MSBuild 的建筑物没有任何错误

4

2 回答 2

6

如何使用“dotnet”工具构建 .sqlproj 项目?

抱歉,但据我所知,目前不支持这种情况。dotnet cli 无法使用旧框架样式的项目文件构建数据库项目,这是设计使然。

至于为什么它使用 Visual Studio 和 MSBuild 构建没有任何错误但使用 dotnet 失败的原因。请检查您的 SSDT 安装路径,它应该在 path 下C:\Program Files (x86)\Microsoft Visual Studio\2019\VSEditon\MSBuild\Microsoft\VisualStudio\v16.0\SSDT

SSDT作为 MSBuild(VS 构建工具)或 VS 的 MSBuild 的子模块安装,因此在通过 VS/MSbuild 构建它时效果很好。但是dotnet cli不知道在哪里可以找到 MSBuild 文件夹的子文件夹下的这个模块,所以它会抛出错误。

github上有一次关于这个的讨论,在我看来支持通过Dotnet构建SQLProj的功能还没有实现。如果您对该功能感兴趣,我建议您可以在那里打开一张新票来发布您的想法。

于 2020-06-01T02:06:19.567 回答
6

截至 2020 年 3 月,现在可以使用MSBuild.Sdk.SqlProj包。从技术上讲,它不是构建sqlproj文件本身,而是基于csproj生成 DACPAC 的等效版本。它目前具有一些优势,例如跨平台构建,并且能够构建整个文件夹而不是遗漏一个您总是忘记手动添加到 sqlproj 的文件。当前的缺点是由于没有dbmdl缓存,构建速度较慢,并且至少用于将更改从外部数据库或 DACPAC 导入项目源的 IDE/工具支持较少。

于 2020-10-14T05:02:35.347 回答