1

目标:在 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
4

1 回答 1

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

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

于 2017-11-03T09:30:04.893 回答