3

我创建了一个目标并指定了本教程中描述的输入和输出,以从 SASS 文件构建 CSS 文件。这通常有效,除非我切换到具有旧文件时间戳的旧 Git 分支。在这种情况下,我希望 MSBuild 执行我的目标以重建我的文件,但 MSBuild 跳过它,因为我的输入上的时间戳比我的输出旧,所以 MSBuild 认为我的输出是最新的。

当我切换 Git 分支时,如何让 Visual Studio 增量构建我的 SASS 文件并清理/忽略我的输出?我想避免手动清理我编译的 CSS 文件来强制构建。

4

1 回答 1

3

您可以使用 Post Checkout Hook。(另见官方 Git 文档。)

将您的 clean 命令放入文件中.git/hooks/post-checkout。例如:

msbuild myproj.csproj /t:clean

每当您切换分支时,该命令都应该运行。

这将导致发生完全重建,这可能是您想要的,因为很难判断哪些文件在分支之间发生了变化。

AFAIK,所有 Git 钩子都是仓库本地的,无法签入。要与其他用户共享您的钩子,您可以将其保存在仓库中的某个位置,并告诉用户手动将其复制到正确的位置,或者如果需要,添加一个构建事件以将其复制到那里。

于 2016-08-19T21:31:57.277 回答