我正在尝试调试C ++程序。我通常从.bat文件运行它,它在运行程序之前执行一些文件清理。我可以从这个脚本运行我的程序并附加调试器,但从VS启动.bat文件会更方便。如果我将启动项目的Command属性设置为bat文件,我会收到一个错误,它是一个无法识别的二进制格式(因为它不是二进制格式,我想)。我可以将命令设置为cmd.exe并打开命令shell,但我还没想出如何将.bat文件传递给命令shell。我尝试将它包含在属性命令行中,包含和不包含重定向char(<),并尝试将其作为参数传递给命令,但这些都不起作用。我已经足够接近,我认为必须有办法做到这一点,但我的想法已经不多了。
答案 0 :(得分:0)
我建议您在“Build Events”项目设置中添加一个post-build事件,而不是调用最后的批处理文件。在构建后事件中键入清理代码,但省略“程序启动”行。让VS运行你的程序。这样您就不需要附加到程序
答案 1 :(得分:0)
某些视觉工作室具有此选项,有些则没有。我将同时发布这两种情况
c:\Windows\System32\cmd.exe
/c your_bat.bat
保存并调试愉快
执行上述操作时,将在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中重新加载项目,此更改才能生效。 (右键单击该项目,卸载-然后再次加载)