使MSBuild的Exec任务显示交互式shell

| 以下两段是背景知识-它们只是解释为什么我需要做这样一件奇怪的事情。如果您不在乎,可以跳过它们,直接转到问题。 我是Vim用户,我开始学习C#。自然,我想使用MSBuild作为我的makeprg。我想为常见的开发操作绑定热键-生成,清理和运行。由于我想全局设置热键,因此我遇到了一个问题,因为每个项目中的文件名都不相同。 在GCC / MinGW中,这个问题可以轻松解决-因为我已经将重要的文件名存储在变量中,所以我可以简单地添加到makefile目标中以清理构建并运行程序,然后将热键绑定到\“: make!“和”:make!Run \“。所以我想我可以用MSBuild目标做同样的事情。它对于使用Delete标记进行Clean很有用(不确定我是否真的需要在.NET中进行clean,但您知道-习惯的力量),但是Run有问题。 现在,这就是我的问题:与GCC / MinGW的makefile(它们只是运行shell命令的简单批处理文件)不同,MSBuild使用它自己的命令集并在内部运行它们。这意味着Exec任务无需外壳即可运行该程序-我可以打开窗口,但不能使用它来测试交互式外壳程序。 有什么办法说服MSBuild给我一个交互式外壳?     
已邀请:
        您是否尝试过这种变化,
<Exec Command=\"start $(COMSPEC) /k &quot;$(PathTo)\\My.exe &amp; exit&quot;\" />
转义后大致可以解决这个问题,
C:\\Windows\\system32\\cmd.exe /k \"PathTo\\My.exe & exit\"
它将在命令外壳中运行您的命令(/ k可能不是您使用的正确cmd开关),然后在退出交互式程序时,它将运行\“ exit \”命令并继续。     

要回复问题请先登录注册