在运行MSBuild发布时停止正在发布的SSDT

在运行MSBuild发布时停止正在发布的SSDT,msbuild,azure-devops,sql-server-data-tools,dacpac,Msbuild,Azure Devops,Sql Server Data Tools,Dacpac,我在DevOps上发布了一个ClickOnce项目。我已将DevOps中WinForm解决方案的构建阶段的MSBuild Arguments属性设置为/target:Publish,以触发所有ClickOnce文件的创建: 但是,该解决方案还包含一个SSDT项目,添加/target:Publish设置似乎会导致构建过程也尝试发布SSDT。然后失败,出现错误: C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\MSBuil

我在DevOps上发布了一个ClickOnce项目。我已将DevOps中WinForm解决方案的构建阶段的
MSBuild Arguments
属性设置为
/target:Publish
,以触发所有ClickOnce文件的创建:

但是,该解决方案还包含一个SSDT项目,添加
/target:Publish
设置似乎会导致构建过程也尝试发布SSDT。然后失败,出现错误:

C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets(1808,5): 错误MSB4044:未为“SqlPublishTask”任务指定 必需参数“SqlPublishProfilePath”

可能它失败了,因为在生成参数中没有为SSDT指定要使用的发布配置文件

我不希望MSBuild将DacPac发布到服务器,我只希望它创建DacPac。如何停止触发SSDT发布的
/target:Publish
,是否可以添加另一个生成参数来阻止这种情况发生

注意到目前为止我试图解决的问题,但没有一个有效:

  • 阅读MS Build官方文档和中的-target开关
  • 查看了.csproj文件中的代码,尝试识别“发布”部分——认为发布也必须调用Build
  • 在VS的解决方案配置中取消对SSDT的部署的锁定
  • 在SSDT的.csproj文件中的发布和部署配置中添加False条目,并将调试配置()的条目设置为False
  • 在DevOps()上使用MS Build参数将MSBuild设置为仅发布一个项目
  • 考虑使用Mage.exe将ClickOnce发布拉到一个完全独立的阶段,如下所示
  • 尝试创建一个不实际发布的发布配置文件,以便发布阶段可以完成(以及

最终,我以完全不同的方式解决了上述问题。我没有让MSBuild执行我希望它执行的操作,而是将解决方案配置分为两个阶段,一个阶段用于数据库,另一个阶段用于不带数据库的WinForms项目

然后,我在DevOps上使用了两个独立的VS构建阶段,只有WinForms阶段仍然设置了
/target:Publish

,但仍想知道当目标设置为发布时是否可以告诉MSBuild不要生成SSDT的答案