在运行MSBuild发布时停止正在发布的SSDT
我在DevOps上发布了一个ClickOnce项目。我已将DevOps中WinForm解决方案的构建阶段的在运行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
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发布拉到一个完全独立的阶段,如下所示
- 尝试创建一个不实际发布的发布配置文件,以便发布阶段可以完成(以及
/target:Publish
,但仍想知道当目标设置为发布时是否可以告诉MSBuild不要生成SSDT的答案