gpt4 book ai didi

sql-server - 在 Ubuntu 中构建 SQL Server 数据库项目

转载 作者:太空宇宙 更新时间:2023-11-03 16:46:14 25 4
gpt4 key购买 nike

我正在构建一个托管在 Ubuntu 环境中的 ASP.NET Core 2.0 Web API 应用程序。到目前为止,我在 Ubuntu 中构建和运行(针对 .NET Core 应用程序)方面取得了巨大成功。

对于数据库,我的解决方案中包含一个 SqlProj。该项目包括典型的东西,例如表、SP 和部署前/后脚本。我正在使用以下命令(在我基于 Windows 的开发机器上)来构建和部署这个项目:

msbuild .\MyProject.DB.sqlproj /t:Build /t:Publish /P:SqlPublishProfilePath="./PublishProfiles/MyProject.DB.publish.xml"

当我采用这种方法时,一切都会正确构建和部署;然而,由于我将利用 .NET Core CLI 命令 + 以 Ubuntu 环境为目标的 CI/CD,我想做一些更像是:

dotnet msbuild .\MyProject.DB.sqlproj /t:Build /t:Publish /P:SqlPublishProfilePath="./PublishProfiles/MyProject.DB.publish.xml"

在 Windows 中,我立即得到错误:

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

基本上,我要问的是如何在 Ubuntu 环境中成功构建和部署 SqlProj 项目。我试过谷歌搜索,但到目前为止我的运气为零。我发现的所有类似问题都是针对那些正在编辑他们的 .proj 文件以针对他们的 VS 文件夹的 SSDT 的个人。所有这些人都在解决 Windows 中的问题。这种方法在 Ubuntu 中不起作用,因为目标文件使用 Windows 注册表项。

编辑:我知道需要 SSDT 才能使用 MSBuild 执行此类部署。我没有发现任何证据表明在 Ubuntu 中甚至可以安装/使用 SSDT。如果不是,也许有替代解决方案?

仅供引用,我知道可以对 EF Core 使用代码优先方法。我正在尝试采用原始 SP 方法(以及利用索引)并改为使用 SqlProj 跟踪我的所有代码。这将全部存储并从 Git 存储库进行 CI/CD。

最佳答案

您可以使用此 NuGet 包进行部署而无需安装 SSDT https://www.nuget.org/packages/Microsoft.Data.Tools.Msbuild我不知道它是否会在 Ubuntu 上运行或完全与 dotnet cli 集成

关于sql-server - 在 Ubuntu 中构建 SQL Server 数据库项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48481028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com