1

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

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

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

4

3 回答 3

1

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

这是一个设置示例(这是构建后事件的命令行属性的文本):

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

call $(SolutionDir)PostBuild.bat

如您所见,您拥有基于 VisualStudio 宏自定义批处理环境的所有灵活性。

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

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

在工作中,我们有一个类似的设置来在每次触发构建时开始我们的单元测试。

于 2008-10-17T15:49:55.940 回答
0

您可以从自定义构建步骤或构建事件中调用它。

于 2008-10-16T23:22:45.263 回答
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!

于 2008-10-16T23:53:50.350 回答