2017-02-14 4 views
0

私は、ブラウズとビルドによってC#プロジェクトをインポートするWPFプロジェクトを作成しています。ここに私の小さなブラウジングだとコードを見つける:私はこのコードを呼び出してるのボタンを押すことによって、それを見つけた後C#プロジェクトをインポートしてバックグラウンドで実行します。

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

Process.Start(textBox.Text); 

このコードは、直接アプリケーションを実行します。私はバックグラウンドでアプリケーションを構築する必要があります。

これを達成する方法がわかりません。

+0

ですから、ソースコードが含まれているフォルダを参照してコンパイルすると、それを実行します? – GoneUp

答えて

0

バックグラウンドでアプリケーションをビルドすることは何を意味するのかよく分かりませんが、ライブラリ(DLLなど)を作成してビルドし、後で他のアプリケーションから参照することをお勧めします。

0

プロセスクラスを見ると、いくつかのオプションがあります。まず、ウィンドウを正面に戻すことができます。第二に、あなたはMSBuildの実行可能ファイルのパスを見つけるにはmsbuild

を使用することができ、バックグラウンドでコマンドラインからプロジェクトをビルドするにはhttps://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo(v=vs.110).aspx

+0

私はOPの質問から理解していますが、非常にはっきりしていませんが、彼の問題は解決策をパスから構築しているということです... – Pikoh

1

を参照してください。..何のウィンドウを示していないstartinfoを使用して、またはそれを最小限に抑えることによって

をウィンドウを隠すことができあなたが道を知った後、あなたのプロジェクトをビルドするMSBuildのコマンドを実行し、

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

:お使いのシステムにあなたがレジストリクエリを実行することができます。たとえば:あなたは、バックグラウンドでビルドコマンドを実行したい場合は

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(); 
関連する問題