Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式启动Visual Studio代码_C#_.net_.net Core - Fatal编程技术网

C# 以编程方式启动Visual Studio代码

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应用程

我试图用c#以编程方式启动VS代码

我需要类似的东西

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不起作用,那么我们应该努力了解原因,而不是尝试绷带。这可能行得通,但并不意味着这是个好主意。为什么在没有必要的情况下启动一个东西而启动另一个呢?很难看。你可能认为这是无害的,你当然有权发表你的意见。我不同意。仅仅提供一个有效的解决方案就没有抓住要点:我们看到解决方案一直在发布,但它们比需要的更复杂,效率比应该的低,或者引入安全问题。因此,显然,提供一个有效的解决方案只是其中的一部分。提供此类解决方案的反馈是网站的一个组成部分。未来的人们将看到这个答案——也许成千上万的人。我宁愿提前努力找出可能的最佳解决方案,而不是匆忙提供解决方案。这并不意味着