从 C# 代码打开 Visual Studio 命令提示符 [英] Open Visual Studio command prompt from C# code
本文介绍了从 C# 代码打开 Visual Studio 命令提示符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用 C# 代码打开 Visual Studio 命令提示符.
I am trying to open Visual studio Command prompt using C# code.
这是我的代码
private void Execute(string vsEnvVar)
{
var vsInstallPath = Environment.GetEnvironmentVariable(vsEnvVar);
// vsEnvVar can be VS100COMNTOOLS, VS120COMNTOOLS, VS140COMNTOOLS
if (Directory.Exists(vsInstallPath))
{
var filePath = vsInstallPath + "vsvars32.bat";
if (File.Exists(filePath))
{
//start vs command process
Process proc = new Process();
var command = Environment.GetEnvironmentVariable("ComSpec");
command = @"" + command + @"";
var batfile = @"E:\Test\vstest.bat";
var args = string.Format("/K \"{0}\" \"{1}\"" ,filePath, batfile);
proc.StartInfo.FileName = command;
proc.StartInfo.Arguments = args;
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.UseShellExecute = false;
proc.Start();
}
else
{
Console.WriteLine("File Does not exists " + filePath);
}
}
}
但是 args 字符串的格式不正确.我得到低于格式化的字符串
But the args string is not getting properly formatted. I am getting below formatted string
"/K \"C:\\Program Files\\Microsoft Visual Studio 10.0\\Common7\\Tools\\vsvars32.bat\" \"E:\\Test\\vstest.bat\""
正在添加额外的\".
请指出我遗漏了什么.谢谢
Please point out what I am missing. Thanks
推荐答案
字符串正在按照您的要求进行格式化,但您要求的内容有误."E:\Test\VStest.bat"
正在作为参数传递给 VCVars.bat
,但我怀疑您希望在它之后执行它.
The string is being formatted as you asked, but you have asked for the wrong thing. "E:\Test\VStest.bat"
is being passed as an argument to VCVars.bat
, but I suspect you want it to be executed after it.
试试这个:
var args = string.Format("/S/K \" \"{0}\" && \"{1}\" \"" ,filePath, batFile);
这应该产生:
"/S/K \" \"C:\\Program Files\\Microsoft Visual Studio 10.0\\Common7\\Tools\\vsvars32.bat\" && \"E:\\Test\\vstest.bat\" \" \"
字符串是:
/S/K " "C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\vsvars32.bat" && "E:\Test\vstest.bat" "
这篇关于从 C# 代码打开 Visual Studio 命令提示符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文