【问题标题】:Visual Studio .sqlproj always built始终构建 Visual Studio .sqlproj
【发布时间】:2015-12-10 01:44:46
【问题描述】:

当我在 Visual Studio 解决方案中有一个 SQL Server 数据库项目 (.sqlproj) 时,我注意到每次构建解决方案时都会构建该特定项目,即使项目文件没有更改。

这与正常的 C# 项目 (.csproj) 不一致,只有在有任何文件更改时才会构建。

我尝试提高msbuild 输出的详细程度,而且它似乎总是在没有特殊原因的情况下构建该项目。

.sqlproj 总是建立有什么原因吗?有没有办法让它只在文件更改时构建?

【问题讨论】:

  • 有幸找到原因吗?
  • 还不知道。 .sqlproj 中似乎没有任何可疑之处。我的文件很简单<Include>。也没有额外的构建操作...
  • 据我所知,发生这种情况是因为 SSDT SqlProj 是一款效果不佳的糟糕产品。

标签: sql-server visual-studio msbuild csproj sqlproj


【解决方案1】:

MSBuild 有机会制作Incremental Build。其主要思想如下:

MSBuild 尝试在这些属性的值之间找到一对一的映射。如果存在 1 对 1 映射,MSBuild 会将每个输入项的时间戳与其对应的输出项的时间戳进行比较。将没有一对一映射的输出文件与所有输入文件进行比较。如果项目的输出文件与其输入文件的年龄相同或更新,则该项目被认为是最新的。

我不知道 *.sqlproj 文件中包含哪些目标,因此您需要确定它是否曾经使用过该技术,如果确实使用过 - 您需要检查涉及哪些输入和输出,并尝试澄清自己动手,看看他们到底是怎么回事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 2020-10-13
    相关资源
    最近更新 更多