C# 如何以编程方式启动带有 Visual Studio 2019 的项目实例

C# how to programmatically launch an instance of a project with Visual Studio 2019

2019 年 Visual Studio 我有一个解决方案,其中一个项目必须始终在同一个解决方案中启动另一个项目。 我当然可以启动已部署的实例,但这样做我不会有最后更新的实例。

所以我的问题是:如何通过代码以编程方式启动项目,就像用鼠标进行 DEBUG--->LAUNCH NEW INSTANCE 一样?

Debugger.. 类中看不到任何有用的东西。

感谢您的帮助

帕特里克

您描述的是 OLE 自动化。 我不知道这是内置的了。

如果是,VS 2019 将在其主目录中的某处提供一个类型库,允许您启动和自动化 visual studio 的界面。

如果您只是想提供调试信息,也许 mshost (sp ?) 有一个连接协议,允许您在错误发生时捕获错误。

我认为问题的关键是重建另一个项目,而运行在一个项目中,我们通常有项目引用。当您包含项目引用时,dll 将与您的应用程序的其余部分一起构建。

项目 A(重建启动实例):

xaml代码:

<Grid>
        <TextBox Width="100" Height="50" Background="AliceBlue" FontSize="29">hello</TextBox>
        <Button Height="50" Width="100" HorizontalAlignment="Right" Click="Button_Click">click</Button>
  </Grid>

cs代码:

using System.Diagnostics;
using System.Windows;
namespace rebuildstartinstance
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Process p = new Process();
            p.StartInfo.FileName = "C:\...\ WpfApp1\bin\Debug\WpfApp1.exe";
            p.Start();
        }
    }
}

注意:构建和 运行 后,生成的 .exe 文件位于项目的 bin 文件夹中。检查您是否正在 运行ning 那个 .exe 文件。 您还可以检查 .exe 文件的创建日期是否在编译后更新。如果不是,则您 运行 没有安装正确的 .exe 文件。

项目 B (WpfApp1):

xaml代码:

<StackPanel>
        <TextBox Width="100" Height="50" Background="DarkViolet" FontSize="29">hello</TextBox>
        <TextBox Width="100" Height="50" Background="Cornsilk" FontSize="29">hello</TextBox>
</StackPanel>

右击项目A下的References(rebuildstartinstance) ->Add Reference...->SelectProjects->勾选项目B(WpfApp1)->点击ok

更新B项目:

<StackPanel>
        <TextBox Width="100" Height="50" Background="DarkViolet" FontSize="29">hello</TextBox>
        <TextBox Width="100" Height="50" Background="Cornsilk" FontSize="29">hello</TextBox>
        <TextBox Width="100" Height="50" Background="DarkGreen" FontSize="29">hello</TextBox>
</StackPanel>

运行ning项目A点击按钮结果如下: