솔루션 파일 경로 (.sln 파일)와 빌드 모드 (디버그, 릴리스)를 전달하여 솔루션을 컴파일하려고합니다. devenv.exe 또는 msbuild.exe와 같은 명령 줄 프로세스를 호출하고 싶지 않습니다. 대신 API를 사용하여 컴파일 오류가 발생했는지 확인하고 싶습니다.프로그래밍 방식으로 Visual Studio 솔루션을 만드는 방법은 무엇입니까?
가능합니까? 그 방법을 알고 있다고 생각되면 샘플을 제공해주십시오.
솔루션 파일 경로 (.sln 파일)와 빌드 모드 (디버그, 릴리스)를 전달하여 솔루션을 컴파일하려고합니다. devenv.exe 또는 msbuild.exe와 같은 명령 줄 프로세스를 호출하고 싶지 않습니다. 대신 API를 사용하여 컴파일 오류가 발생했는지 확인하고 싶습니다.프로그래밍 방식으로 Visual Studio 솔루션을 만드는 방법은 무엇입니까?
가능합니까? 그 방법을 알고 있다고 생각되면 샘플을 제공해주십시오.
컴파일을 시작하려면 프로세스를 시작해야하며 컴파일을 시작하는 프로세스를 생성해야합니다. API로 어려움을 겪는 것보다 훨씬 쉬울 것입니다.
편집 앤드류 (Andrew)는 어떻게 움직일 지에 대한 좋은 조언을하지만 여전히 실수라고 생각합니다.
것은 itowlson은 또한 배치 파일로
// Build a project file
bool success = engine.BuildProjectFile(@"c:\temp\validate.proj");
당신은 스크립트에서 MSBuild를 사용할 수 있습니다 ... MSDN에서 ... Build Engine APIs
을 사용할 수있는 지적. 그리고 ErrorLevel을 0 이외의 값으로 확인하거나 API를 재미있게 사용할 수 있습니다.
C : \ WINDOWS \ Microsoft.NET 프레임 워크 \ \ V2.0.50727 MSBuild.exe를에서
.. MSBuild.exe를
\ /? ...마이크로 소프트 (R) 엔진 버전 빌드 2.0.50727.4927 [마이크로 소프트 .NET Framework 버전 2.0.50727.4927] 저작권 (C) Microsoft의 예약 2005 모든 권한을 소유합니다.
구문 : MSBuild.exe를 [옵션] [프로젝트 파일]
...
예 : 여기
MSBuild MyApp.sln /t:Rebuild /p:Configuration=Release MSBuild MyApp.csproj /t:Clean /p:Configuration=Debug
MSBuild 명령 줄을 사용하고 싶지 않으므로 특히 MSBuild API, 특히 http://msdn.microsoft.com/en-us/library/microsoft.build.buildengine을 가리켜 볼 가치가 있습니다. engine.buildprojectfile.aspx. – itowlson
좋은 지적은 ... 아마 그냥 Process.Start()와 exe로 래핑 하겠지만 API의 장점을 볼 수 있습니다. –
또한 MSBuild API를 사용하는 것이 좋습니다. 그것은 꽤 잘 작동하는 것 같습니다. 그러나 .NET4 및 VS2010에서는 크게 변경되었습니다.
끝내기 코드로 얼마나 쉽게 스크립트를 작성할 수 있는지 놀랍습니다. (나는 너무 많은 사람들이 얼마나 간단하고 쉬운 배치 파일이 작동 하는지를 기억하지 못한다고 생각한다 ... DOS가 대중적이었던 이후로 몇 년이 지났기 때문에 아마 그들은 모를 것이다.) –
그 소리는 참으로 훌륭하다. API를 사용하는 것이 훨씬 쉽습니다. 나는 올바른 객체가 있으면 오류를 테스트 할 수있는 위치로 돌아 왔지만 쉬운 .net API가 없다는 것은 부끄러운 일이라고 생각합니다. 기타 감사합니다. – clems
itowlson이 지적한 빌드 엔진 API를 놓친 것 같아요. http://msdn.microsoft.com/en-us/library/microsoft.build.buildengine.engine.buildprojectfile.aspx –