Visual Studio - 启动.bat文件作为启动项目

时间:2013-04-18 00:06:18

标签: visual-studio-2010 debugging

我正在尝试调试C ++程序。我通常从.bat文件运行它,它在运行程序之前执行一些文件清理。我可以从这个脚本运行我的程序并附加调试器,但从VS启动.bat文件会更方便。如果我将启动项目的Command属性设置为bat文件,我会收到一个错误,它是一个无法识别的二进制格式(因为它不是二进制格式,我想)。我可以将命令设置为cmd.exe并打开命令shell,但我还没想出如何将.bat文件传递给命令shell。我尝试将它包含在属性命令行中,包含和不包含重定向char(<),并尝试将其作为参数传递给命令,但这些都不起作用。我已经足够接近,我认为必须有办法做到这一点,但我的想法已经不多了。

2 个答案:

答案 0 :(得分:0)

我建议您在“Build Events”项目设置中添加一个post-build事件,而不是调用最后的批处理文件。在构建后事件中键入清理代码,但省略“程序启动”行。让VS运行你的程序。这样您就不需要附加到程序

答案 1 :(得分:0)

某些视觉工作室具有此选项,有些则没有。我将同时发布这两种情况

如果您的VS具有此选项

  • 右键单击“项目”,然后转到属性->调试
    • 在“开始操作”中,选择“启动外部程序”,然后放入c:\Windows\System32\cmd.exe
    • 在开始选项中,输入命令行参数:/c your_bat.bat
    • 必要时设置工作目录

保存并调试愉快

如果您的VS没有此选项

执行上述操作时,将在your_project.csproj.user所在的目录中创建/更新your_project.csproj文件,并执行以下操作:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectView>ShowAllFiles</ProjectView>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
    <StartProgram>C:\Windows\System32\cmd.exe</StartProgram>
    <StartWorkingDirectory>c:\your_working_directory\</StartWorkingDirectory>
    <StartArguments>/c your_bat.bat</StartArguments>
  </PropertyGroup>
</Project>

创建或更新包含上述文件的文件。小心不要除去其他东西(如果有的话)。您还可以通过使用不同的配置(例如PropertyGroup和项目可能具有的其他配置)复制'Release|AnyCPU'来将其扩展到其他配置。 (这在某些版本的VS中可以通过界面实现)

警告::您需要在Visual Studio中重新加载项目,此更改才能生效。 (右键单击该项目,卸载-然后再次加载)