MSBUILD 仅执行更改的 SQL 脚本

标签 msbuild

我需要构建一个 MSBUILD 脚本来执行自上次构建以来已更改的 .SQL 脚本。

我最初认为我可以使用<Copy>将所有脚本从一个文件夹复制到另一个文件夹。任务并使用 CopiedFiles <Output>用于复制任务。但是,复制任务返回它尝试复制的所有文件,而不是实际复制的文件。

我能够让 MSBUILD 通过 MSBUILD.ExtensionPack 执行 SQL 脚本,但我对这个感到摸不着头脑

最佳答案

您可以使用增量构建的概念来做到这一点。这个想法是,您将创建一个目标,然后指定输入和输出,这将是文件。 MSBuild 将比较输入文件和输出文件的时间戳。如果所有输出都是在所有输出之后创建的,则跳过目标。如果所有输入都是较新的,则将为所有文件执行所有目标。如果只有一部分已过时,则仅将这些部分传递给目标。有关这方面的更多信息,请参阅我的文章 Best Practices For Creating Reliable Builds, Part 2 中的使用增量构建部分.

此外,为了获取有关 MSBuild 的更多资源,我在 http://sedotech.com/Resources#MSBuild 处编制了一个列表。

关于MSBUILD 仅执行更改的 SQL 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2211648/

相关文章:

visual-studio-2010 - Sql Server Data Tools headless 构建失败并出现 MissingMethodException

visual-studio-2010 - Visual Studio中的BeforeBuild和AfterBuild Target无法触发

xamarin - 使用 msbuild 命令行 xcarchive 到 ipa

Git 推送后 Azure 构建失败

c# - Visual Studio/IIS Express 间歇性错误

c# - 避免 CopyFilesToOutputDirectory 构建步骤

c# - 如何将 ruby​​ gem 嵌入到 C# 项目中并从嵌入式 IronRuby 脚本中获取它?

c# - 多目标 .NET 程序集以在 .NET 4.5 和 .NET 4 上使用异步/等待

visual-studio - 如何在 Visual Studio 后期构建脚本中使用构建时间戳

visual-studio - msbuild 任务通过发布配置文件来删除特定文件