繁体   English   中英

数据库项目(DACPAC)的问题-持续交付

[英]Issue with Database project (DACPAC) - Continuous delivery

我有Microsoft TFS生成过程,可以将Web项目部署到Azure Web角色,这种情况每天都会自动发生。 我已关注Azure文章https://azure.microsoft.com/en-in/documentation/articles/cloud-services-dotnet-continuous-delivery/

如上文章所述,我在构建过程中遵循了MSBuild参数

/t:Publish /p:PublishDir=C:\MSCD\

当我将数据库项目添加到我的项目解决方案时,构建一直失败。 收到错误消息

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

发布Web项目时,我不希望发布数据库项目。 如何将DACPAC文件drop到文件夹? 所以我可以使用Powershell在天蓝色的情况下更新我的数据库。

我正在使用TFS 2012内部部署。 有人可以对如何解决这个问题提出建议吗?

您需要创建Master-child构建定义,并在master build definition中配置配置解决方案,并在Configuration Manager中禁用构建和部署。

创建母版和子版的定义,使它们共享共同的下落。

@Siva palla的回答为我解决了这个完全相同的问题。 这是我们为完成此工作而进行的完整更改的集合。

Visual Studio中的更改

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

在此处输入图片说明

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

在此处输入图片说明

我设置了新的部署,以从旧的部署配置中复制其设置,而不是为每个项目创建新的配置(现有项目级别的部署都可以):

在此处输入图片说明

然后,在该新部署中,我取消选中用于构建和部署数据库项目的框:

SSDT项目的配置未打勾

然后,我再次做完全相同的事情来创建数据库特定的部署:

在此处输入图片说明

在那一本书中,我取消了除数据库文件以外的所有内容:

在此处输入图片说明

这是Visual Studio所需的一切,因此我将所有内容都提交了,并将其同步回DevOps。

Azure DevOps中的更改

在DevOps中,我克隆了现有的Visual Studio Build阶段(称为“ Build Winforms解决方案”),并将克隆重命名为Build Databases:

在此处输入图片说明

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

在此处输入图片说明

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

在此处输入图片说明

在新的构建数据库阶段使用数据库变量-请注意,我们没有任何MSBuild参数: 在此处输入图片说明

最后,除了复制阶段外,我还具有将ClickOnce应用程序文件复制到drop工件中的功能:

在此处输入图片说明

我还添加了一个“复制文件”阶段(称为“复制Dacpacs”),也将DacPac复制到放置中:

在此处输入图片说明

完成所有这些操作之后,您应该以可以正常工作的构建和包含ClickOnce文件和DacPacs的构件为最终结果

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM