2017-02-14 1 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

프로세스 클래스를 살펴보면 몇 가지 옵션이 있습니다. 첫째로 당신은 당신의 창을 정면으로 돌려 보낼 수 있습니다. 두 번째는 더 창을 표시하지 않는 startinfo를 사용하거나 최소화하여 창을 숨길 수 ..

당신이 msbuild

이 msbuild를 실행 파일 경로를 찾는 데 사용할 수있는 https://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo(v=vs.110).aspx

+0

OP 질문에서 알 수있는 것은 명확하지 않지만, 그의 문제가 경로에서 해결책을 구축하고 있다는 것입니다 ... – Pikoh

1

백그라운드에서 명령 줄에서 프로젝트를 빌드하는 방법을 참조하십시오 당신이 경로를 알고 후

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();