我创建了一个Target并指定了此tutorial中描述的输入和输出,以便从SASS文件构建CSS文件。这通常有效,除非我切换到具有较旧文件时间戳的旧Git分支。在这种情况下,我希望MSBuild执行我的目标来重建我的文件,但MSBuild会跳过它,因为我的输入上的时间戳比我的输出旧,所以MSBuild认为我的输出是最新的。
当我切换Git分支时,如何让Visual Studio逐步构建我的SASS文件并清理/忽略我的输出?我想避免手动清理我编译的CSS文件以强制构建。
答案 0 :(得分:3)
您可以使用Post Checkout Hook。 (另见official Git docs。)
将您的clean命令放在文件.git/hooks/post-checkout
中。 E.g:
msbuild myproj.csproj /t:clean
每当你切换分支时,该命令都应该运行。
这将导致完全重建,这可能是您想要的,因为很难分辨哪些文件在分支之间发生了变化。
AFAIK,所有Git钩子都是repo的本地钩子,并且无法签入。要与其他用户共享钩子,你可以将它保存在repo中的某个地方,并告诉用户手动复制它正确的位置,或添加构建事件,以便在需要时将其复制到那里。