我有微软的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”提供值。
当我发布我的网络项目时,我不希望数据库项目被发布。如何将DACPAC文件拖放到drop文件夹中?这样我就可以用powershell更新我的数据库了。
我正在使用TFS 2012的前提。有人能给出解决这个问题的建议吗?
发布于 2015-07-20 09:17:17
您需要创建主-子构建定义,并在主构建定义中配置解决方案,在配置管理器中禁用生成和部署,仅在子构建配置数据库项目中禁用.and。
创建主生成定义和子构建定义,使它们共享共同的拖放。
发布于 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的工件。

https://stackoverflow.com/questions/31501489
复制相似问题