【问题标题】:Import a c# project and run it in the background导入一个c#项目并在后台运行
【发布时间】:2017-07-02 21:44:34
【问题描述】:

我正在制作一个 WPF 项目,它通过浏览和构建来导入一个 c# 项目。这是我的小浏览和查找代码:

var dialog2 = new System.Windows.Forms.FolderBrowserDialog();
System.Windows.Forms.DialogResult result2 = dialog2.ShowDialog();
textBox1.Text = dialog2.SelectedPath;

通过按下按钮找到它后,我正在调用此代码:

Process.Start(textBox.Text);

此代码直接运行应用程序。我需要在后台构建应用程序。

我不知道如何做到这一点。

【问题讨论】:

  • 所以你浏览到一个包含源代码的文件夹并且你想编译并运行它?

标签: c# wpf build background


【解决方案1】:

要在后台从命令行构建项目,您可以使用msbuild

要在您的系统上查找 msbuild 可执行路径,您可以运行注册表查询:

reg.exe query "HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0" /v MSBuildToolsPath

知道路径后,运行 msbuild 命令来构建您的项目。例如:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild SolutionName.sln

如果您想在后台运行构建命令,请使用CreateNoWindow = true 启动进程,例如:

Process p = new Process();
p.StartInfo = new ProcessStartInfo("C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild SolutionName.sln");
p.StartInfo.WorkingDirectory = @"C:\YourWorkingDirectory";
p.StartInfo.CreateNoWindow = true;
p.Start();

【讨论】:

    【解决方案2】:

    我不确定您在后台构建应用程序是什么意思,但我建议您创建一个库(例如 DLL),构建它,然后从您的其他应用程序中引用它。

    【讨论】:

      【解决方案3】:

      如果您查看流程类,则有一些选项。首先,您可以将窗户放回前面。其次,您可以使用不显示窗口的 startinfo 隐藏窗口,或将其最小化..

      https://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo(v=vs.110).aspx

      【讨论】:

      • 我从 OP 问题中了解到,虽然不是很清楚,但他的问题是从路径构建解决方案......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      • 2019-03-31
      • 2021-01-25
      • 2020-01-24
      相关资源
      最近更新 更多