2011-05-14 3 views
2

cproj 파일을 변경하지 않고도 Visual Studio 2010에서 MonoTouch 프로젝트를 빌드하는 방법을 모색 중입니다. 거의 다 왔지만 마지막 단계는 MonoTouch 프로젝트에서 "페이지"작업을 빌드 한 * .xib 파일입니다.Visual Studio 2010 확장 성 - cproj 파일에 영향을 미치지 않고 빌드 작업 덮어 쓰기

Visual Studio 2010 작업 페이지에서 XAML 컴파일러가 호출되므로 VS2010에서 프로젝트를 빌드하려면 빌드 작업을 없음으로 설정해야합니다. 이 문제는 .cproj 파일이 변경 되었기 때문에 MonoTouch를 빌드하기 전에 페이지로 다시 설정해야합니다.

제 질문은 이와 같습니다. Visual Studio 확장 성 모델을 사용하면 특정 파일 형식을 "가로 채고"무시하거나 "무시"하거나 빌드 형식을 변경할 수 있습니까? 또는 Visual Studio에서 msbuild를 사용하여 모든 것을 빌드하므로 실제로 .cproj 파일에 실제로 쓰여지는 내용 만 신경 써야합니까?

답변

2

약간 다른 전략을 사용하여이 문제를 해결했습니다. 빌드 전후에 Visual Studio 2010 확장에서 DTE 개체의 다른 빌드 이벤트를 수신하고 코드를 실행할 수 있습니다.

_dte.Events.BuildEvents.OnBuildBegin += MakeXibsNone; 
_dte.Events.BuildEvents.OnBuildDone += MakeXibsPage; 

이 전략을 사용하여 빌드 작업을 빌드하기 전에 없음으로, 빌드 후에 다시 페이지로 변경할 수 있습니다. 빌드 유형을 변경하는 코드는 솔루션의 모든 프로젝트와 프로젝트의 모든 프로젝트 항목을 열거합니다. 그것은 .xib 확장자를 가진 모든 파일을 찾아 다음 코드를 사용하여 빌드 작업을 변경 :

xib.Properties.Item("ItemType").Value = "Page"; 
xib.Properties.Item("ItemType").Value = "None"; 

완전한 구현이 https://github.com/follesoe/VSMonoTouch/blob/master/VSMonoTouch/VSMonoTouchPackage.cs에서 찾을 수 있습니다.

관련 문제