我在Visual Studio中使用预构建事件来运行执行某些代码生成的批处理(.bat)文件(具体来说,我正在运行SqlMetal.exe来生成LinqToSql代码)。
批处理文件是否可以在编译开始之前完成?或者它是否异步运行批处理?
结论:我想确保编译新代码,而不是旧代码。
如果不能保证 - 有哪些解决方案?
答案 0 :(得分:6)
是。但请注意,如果预构建中有多个步骤,则只会检查最后一步是否有错误。有关详细信息,请参阅Gotcha! Visual Studio Pre/Post-Build Events。
答案 1 :(得分:3)
批处理文件只有在启动过程完成后才会完成,除非您在批处理文件中使用 start 命令。作为一个简单的测试,您可以像这样创建一个批处理文件:
notepad.exe
并将其设置为您的预构建事件。您将看到只有在关闭记事本后才开始构建。