从VC6 / VC2005 / VC2008项目文件中调用批处理/脚本文件

时间:2008-10-16 23:16:51

标签: visual-studio batch-file scripting project

有没有办法从VC6(及更高版本)项目文件中调用外部脚本或批处理文件?

我有一个后台进程,我需要在尝试构建某些项目(DLLS,可执行文件)之前杀死它,并且还没有找到从项目本身成功完成此操作的方法。我只想调用一个带有taskkill命令的批处理文件。

(是的,我可以在构建项目之前从命令行运行批处理文件,但我并不总是记得这样做并且自动完成它对整个开发团队来说会更方便,更少刺激。)

3 个答案:

答案 0 :(得分:1)

您可以创建具有后期构建事件的实用程序项目(配置类型:项目属性页中的实用程序)。然后,您从该Post-Build事件中调用批处理文件。如果我没记错的话,VS2005中会出现实用程序配置。但我相信在VC6上使用其他类型的配置也可以实现同样的目的。

以下是设置示例(这是Post-Build事件的命令行属性的文本):

set solutionDir=$(SolutionDir)
set platformName=$(PlatformName)
set configurationName=$(ConfigurationName)

call $(SolutionDir)PostBuild.bat

如您所见,您可以灵活地基于VisualStudio宏自定义批处理环境。

如果您希望每次构建时调用此批处理文件,请向需要的项目添加依赖项(例如,您的主可执行文件或dll项目)。您可以将批处理文件添加到解决方案项目中以便于访问(右键单击解决方案并选择添加 - >>现有项目...)。

您甚至可以在此实用程序项目上调用build命令来强制执行批处理文件。

在工作中,我们有类似的设置,每次触发构建时都会启动我们的单元测试。

答案 1 :(得分:0)

您可以从custom build step or a build event调用它。

答案 2 :(得分:0)

至少对于Visual Studio 2008中的C#,您可以打开项目文件并在文件中找到以下注释:

<!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
   Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->

取消注释最适合您的方法,在本例中为“BeforeBuild”项目。然后用您的批处理文件替换我在这里的文件:

<Target Name="BeforeBuild">
   <Exec Command="MyBatchFile.bat" />
</Target>

这就是它的全部;无论何时构建该项目,每次都会发生这种情况。

那就是说,我不知道VS 2005或者特别是VC6是否也能这样。的 YMMV!