BuildManager.Build 在 SQL 服务器数据工具项目中遇到第一次异常

BuildManager.Build Encounters First Chance Exceptions in SQL Server Data Tools Project

我正在使用 BuildManager.Build 方法构建 SQL 服务器数据 Tools/Data-Tier 应用程序 Framework/Visual Studio 数据库项目。相同的项目,当通过 Visual Studio 手动构建相同的配置时,构建无一例外,并且在相对较短的时间内,大约 10 秒。但是,当通过 BuildManager.Build 以编程方式构建时,我遇到了一大堆第一次机会异常,所有这些异常似乎都发生在 antlr 命名空间中。这使得构建过程非常缓慢。发生这种情况是因为正在执行 BuildManager.Build 的程序处于调试模式 运行 吗?有谁知道如何摆脱第一次机会期望并希望加快构建过程?

在这两种情况下,第一次抛出异常的机会是在您执行此操作时,出于某种原因,您作为调试器附加到子进程,这导致进程因每个异常而冻结,将控制权传递给你的进程可能会忽略它并重新启动应用程序 - 运行当有很多第一次机会异常时作为调试器非常非常懒散。

抛出异常是因为 SSDT 使用 Antlr(您可能已经猜到了)来解析 T-SQL 并且它发现了它不喜欢的东西。

关键是找出为什么你被附加为调试器,BuildManager.Build正常吗? msdn 文章不是特别有用。如果您能找到一种方法来 运行 构建而不附加为调试器,它将使其恢复正常速度。

仅供参考 - 在这种情况下,发布/调试版本应该没有任何区别。