我有一个在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”
大概是失败的,因为在build参数中没有指定要供SSDT使用的发布配置文件。
我不希望MSBuild将DacPac发布到服务器,我只希望它创建DacPac。如何停止/target:Publish
触发SSDT发布,是否可以添加另一个构建参数来阻止这种情况发生?
关于到目前为止我为解决该问题所做的尝试的注释,但没有一个起作用:
答案 0 :(得分:0)
最终,我以完全不同的方式解决了上述问题。我没有让MSBuild做我想要的事情,而是将解决方案配置分为两部分,一个阶段用于数据库,一个阶段用于不带数据库的WinForms项目。
然后我在DevOps上使用了两个单独的VS Build阶段,只有WinForms阶段仍设置了/target:Publish
。
I've written that up here,但仍然想知道答案,当目标设置为“发布”时,是否可以告诉MSBuild不构建SSDT?