C# 以编程方式启动Visual Studio代码
我试图用c#以编程方式启动VS代码 我需要类似的东西C# 以编程方式启动Visual Studio代码,c#,.net,.net-core,C#,.net,.net Core,我试图用c#以编程方式启动VS代码 我需要类似的东西 System.Diagnostics.Process.Start("notepad.exe", "test.txt"); 如果它能在Windows、MacOS和Linux上工作,那是理想的,但主要是Windows 我正在尝试启动一个名为“code”的进程,因为您可以在cmd提示符或Run中键入code,它将启动VS code,但无法找到执行此操作的方法。请尝试此操作(在Windows 10上测试): 因此,我们实际上要做的是打开cmd应用程
System.Diagnostics.Process.Start("notepad.exe", "test.txt");
如果它能在Windows、MacOS和Linux上工作,那是理想的,但主要是Windows
我正在尝试启动一个名为“code”的进程,因为您可以在cmd提示符或Run中键入code
,它将启动VS code,但无法找到执行此操作的方法。请尝试此操作(在Windows 10上测试):
因此,我们实际上要做的是打开cmd
应用程序并传入命令code
,以便在命令提示符下运行
注释
- 确保在命令文本的开头包含
,否则它将不起作用/C
- 正如一位评论者所指出的,您还需要确保vscode的路径保存在您的
环境变量中%path%
对于没有可用的
cmd
的其他环境,您当然需要找到其他解决方案请尝试此解决方案(在Windows 10上测试):
因此,我们实际上要做的是打开cmd
应用程序并传入命令code
,以便在命令提示符下运行
注释
- 确保在命令文本的开头包含
,否则它将不起作用/C
- 正如一位评论者所指出的,您还需要确保vscode的路径保存在您的
环境变量中%path%
对于没有可用的
cmd
的其他环境,您当然需要找到其他解决方案我以前编写了一些调用VS代码的内容:
public static class ProcessHelper
{
public static void Open(string app, string args)
{
using (Process myProcess = new Process())
{
myProcess.StartInfo.UseShellExecute = true;
myProcess.StartInfo.FileName = app;
myProcess.StartInfo.Arguments = args;
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();
}
}
public static void OpenVsCode(string filePath)
{
Open("code", filePath);
}
}
因此,您可以像这样使用它:
ProcessHelper.OpenVsCode("c:\\myfile.txt");
我以前写过一些调用VS代码的东西:
public static class ProcessHelper
{
public static void Open(string app, string args)
{
using (Process myProcess = new Process())
{
myProcess.StartInfo.UseShellExecute = true;
myProcess.StartInfo.FileName = app;
myProcess.StartInfo.Arguments = args;
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();
}
}
public static void OpenVsCode(string filePath)
{
Open("code", filePath);
}
}
因此,您可以像这样使用它:
ProcessHelper.OpenVsCode("c:\\myfile.txt");
您可以像这样启动记事本,因为exe的路径在%path%变量中。您需要将code.exe的位置添加到此文件中,或者使用完整路径。@Liam code.exe位于我的%path%中,但我仍然无法找到像notepad.exe一样启动它的方法。我正在考虑使用完整路径,但人们在不同的地方安装了它。我想我可以尝试在%PATH%中查找并从中找出路径。您是否尝试过
System.Diagnostics.Process.Start(“code.exe”、“test.txt”)代码>结果是什么?人们在不同的地方安装了它。人们的%PATH%设置也不同。你不能依赖这一点,正如你不能完全依赖它一样path@mason是的,我试过System.Diagnostics.Process.Start(“code.exe”、“test.txt”)代码>。我得到System.ComponentModel.Win32Exception:“系统找不到指定的文件。”
您可以像这样启动记事本,因为exe的路径在%path%变量中。您需要将code.exe的位置添加到此文件中,或者使用完整路径。@Liam code.exe位于我的%path%中,但我仍然无法找到像notepad.exe一样启动它的方法。我正在考虑使用完整路径,但人们在不同的地方安装了它。我想我可以尝试在%PATH%中查找并从中找出路径。您是否尝试过System.Diagnostics.Process.Start(“code.exe”、“test.txt”)代码>结果是什么?人们在不同的地方安装了它。人们的%PATH%设置也不同。你不能依赖这一点,正如你不能完全依赖它一样path@mason是的,我试过System.Diagnostics.Process.Start(“code.exe”、“test.txt”)代码>。我得到System.ComponentModel.Win32Exception:“系统找不到指定的文件。”
为什么启动cmd只是为了启动代码?为什么不直接启动代码?@mason,因为我不知道如何实现?也许你能启发我们哦,太棒了?@Bassie,这很管用。最后我做了System.Diagnostics.Process.Start(“cmd”,“$”/C code{MyFilePathHere})
@Bassie如果启动code.exe不起作用,那么我们应该努力了解原因,而不是尝试绷带。这可能行得通,但并不意味着这是个好主意。为什么在没有必要的情况下启动一个东西而启动另一个呢?很难看。你可能认为这是无害的,你当然有权发表你的意见。我不同意。仅仅提供一个有效的解决方案就没有抓住要点:我们看到解决方案一直在发布,但它们比需要的更复杂,效率比应该的低,或者引入安全问题。因此,显然,提供一个有效的解决方案只是其中的一部分。提供此类解决方案的反馈是网站的一个组成部分。未来的人们将看到这个答案——也许成千上万的人。我宁愿提前努力找出可能的最佳解决方案,而不是匆忙提供解决方案。这并不是对你的人身攻击。为什么只为了启动代码而启动cmd?为什么不直接启动代码?@mason,因为我不知道如何实现?也许你能启发我们哦,太棒了?@Bassie,这很管用。最后我做了System.Diagnostics.Process.Start(“cmd”,“$”/C code{MyFilePathHere})
@Bassie如果启动code.exe不起作用,那么我们应该努力了解原因,而不是尝试绷带。这可能行得通,但并不意味着这是个好主意。为什么在没有必要的情况下启动一个东西而启动另一个呢?很难看。你可能认为这是无害的,你当然有权发表你的意见。我不同意。仅仅提供一个有效的解决方案就没有抓住要点:我们看到解决方案一直在发布,但它们比需要的更复杂,效率比应该的低,或者引入安全问题。因此,显然,提供一个有效的解决方案只是其中的一部分。提供此类解决方案的反馈是网站的一个组成部分。未来的人们将看到这个答案——也许成千上万的人。我宁愿提前努力找出可能的最佳解决方案,而不是匆忙提供解决方案。这并不意味着