Visual Studio 2017 中 sqlproj 的 AfterPublish 目标

Posted

技术标签:

【中文标题】Visual Studio 2017 中 sqlproj 的 AfterPublish 目标【英文标题】:AfterPublish target for sqlproj in Visual Studio 2017 【发布时间】:2017-11-02 14:33:53 【问题描述】:

目标:在 Visual Studio 2017 中发布 SQL Server 数据库项目后运行自定义操作

问题:我在解决方案中有一个 SQL Server 数据库项目 (.sqlproj)。为了在发布项目后执行客户操作,通过添加新目标来修改 .sqlproj 文件,如下所示。

当我在visual studio IDE中通过右键单击项目(或在项目中发布配置文件)发布项目时,它会发布数据库项目,但它不会执行此AfterPublish目标。

注意:如果我使用如下所示的 MSBuild 发布,它将成功执行 AfterPublish 目标。

msbuild mydbproj.sqlproj /t:build;publish /p:sqlpublishprofilepath=mydbproj.publish.xml

【问题讨论】:

【参考方案1】:

当我在visual studio IDE中通过右键单击项目(或在项目中发布配置文件)发布项目时,它会发布数据库项目,但它不会执行此AfterPublish目标。

根据你的描述,我也遇到了同样的问题。由于没有SQL Server数据库项目发布的详细日志输出,所以我在目标中添加了一个简单的复制任务,确认AfterPublish目标没有被执行:

  <Target Name="AfterPublish">
    <Message Text="Test After Publish Target" Importance="high">
    </Message>
    <Copy SourceFiles="D:\Test.txt" DestinationFolder="D:\Test" />
  </Target>

然后我遇到了同样的问题,测试文件Test.txt仅在我通过MSBuild命令行发布项目时复制。

另外,为了缩小这个问题的范围,我创建了一个具有相同AfterPublish 目标的Windows 窗体应用程序项目。它在 Visual Studio 和 MSBuild 命令行中运行良好。

所以这个问题与 SQL Server 数据库项目类型更相关,我已经将此问题提交给开发者社区:

https://developercommunity.visualstudio.com/content/problem/143641/afterpublish-target-not-work-for-sql-server-databa.html

您可以关注您的cmets并查看此问题的反馈。

【讨论】:

@101V,我也帮你投票,如果可能的话,你也可以添加你的评论并投票。对于这种情况,如果可能,您可以将 leo 建议标记为临时答案,以便遇到相同问题的其他社区成员可以轻松找到反馈。我们也会跟进我们的反馈,如果我们有任何更新,我们会在这里分享。

以上是关于Visual Studio 2017 中 sqlproj 的 AfterPublish 目标的主要内容,如果未能解决你的问题,请参考以下文章

Intel parallel studio 2017 集成在visual studio 2013 中,现在如何集成到visual studio 2015

Visual Studio 2017 中用于 JavaScript 和 TypeScript 文件的 Visual Studio Code 颜色主题

visual studio 2017没法安装,总在visual studio installer界面闪推

visual studio2017注册表删除

Visual Studio 2017 安装中断 Visual Studio 2015 ASP.NET Core 项目

无法找到visual studio 2017生成工具