6

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

这与仅在有任何文件更改时才构建的普通C#项目 ( )不一致。.csproj

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

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

4

1 回答 1

0

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

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

我不知道 *.sqlproj 文件中有哪些目标,因此您需要确定它是否曾经使用过该技术,如果确实使用过 - 您需要检查涉及哪些输入和输出,并尝试自己澄清,他们在幕后发生了什么。

于 2015-09-21T08:08:12.493 回答