首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库项目(DACPAC)问题-连续交付

数据库项目(DACPAC)问题-连续交付
EN

Stack Overflow用户
提问于 2015-07-19 12:59:51
回答 2查看 1.3K关注 0票数 2

我有微软的TFS构建过程来部署web项目到azure web角色,这种情况每天都会自动发生。我跟踪了Azure的文章https://azure.microsoft.com/en-in/documentation/articles/cloud-services-dotnet-continuous-delivery/

我在构建过程中遵循了MSBuild参数,正如上面的文章所建议的

代码语言:javascript
复制
/t:Publish /p:PublishDir=C:\MSCD\

当我将数据库项目添加到我的项目解决方案中时,构建总是失败的。获取错误信息

"SqlPublishTask“任务没有为所需的参数"SqlPublishProfilePath”提供值。

当我发布我的网络项目时,我不希望数据库项目被发布。如何将DACPAC文件拖放到drop文件夹中?这样我就可以用powershell更新我的数据库了。

我正在使用TFS 2012的前提。有人能给出解决这个问题的建议吗?

EN

回答 2

Stack Overflow用户

发布于 2015-07-20 09:17:17

您需要创建主-子构建定义,并在主构建定义中配置解决方案,在配置管理器中禁用生成和部署,仅在子构建配置数据库项目中禁用.and。

创建主生成定义和子构建定义,使它们共享共同的拖放。

票数 2
EN

Stack Overflow用户

发布于 2019-02-24 12:21:28

@Siva palla's answer为我解决了同样的问题。以下是我们为实现这一工作所做的全套更改。

在Visual 中的更改

最初,我使用了一个名为“deploy”的配置,该配置被设置为同时部署我们的WinForms项目和SQL项目(VisionShellWin是WinForms项目,两个Vision.SQLMigration项目是SSDT项目),因此下面的所有内容都是基于对部署的更改。对于大多数人来说,您将拥有发行版而不是部署,下面的所有内容仍然可以正常工作,只需在发行版中替代部署:

为了将单个配置分成两部分,我创建了一个新配置:

我将新部署设置为从旧部署配置复制其设置,而不是为每个项目创建新配置(现有项目级部署配置很好):

在这个新的部署中,我取消了构建和部署数据库项目的框:

然后,我再次做了同样的事情来创建特定于数据库的部署:

在那篇文章中,我取消了除数据库文件之外的所有内容:

这是Visual所需的一切,所以我提交了所有这些,并将其同步回DevOps。

在Azure DevOps中的变化

在DevOps中,我克隆了现有的Visual构建阶段(称为“构建Winforms解决方案”),并将克隆重命名为构建数据库:

我在变量选项卡中添加了两个新的构建变量,名为ClickOnceBuildStageConfiguration和DatabasesBuildStageConfiguration,它们的值设置为我们刚才在VS中创建的新配置的名称:

然后,我将WinForms构建阶段更改为使用新的ClickOnceBuildStageConfiguration变量--请注意,我们仍然有ClickOnce集所需的/T:"VisionShellWin" /target:Publish MSBuild参数:

新的构建数据库阶段使用数据库变量-注意,我们没有任何MSBuild参数:

最后,除了复制阶段之外,我还需要将ClickOnce应用程序文件复制到drop工件中:

我还添加了一个复制文件阶段(称为‘’)来将DacPac复制到下拉列表中:

完成所有这些之后,您应该得到一个工作的构建和一个同时包含ClickOnce文件和DacPacs的工件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31501489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档