Visual Studio 2010 을 이용하여 SharePoint Application 을 개발하며 느낀 것은 새롭게 추가된 SharePoint를 지원하는 기능 중에 가장 유용한 부분 중 하나가 Packaging 이라고 생각합니다. SP 2007 시절, WSPBuilder 를 통해 WSP 파일을 만들거나 이 툴 역시 세밀한 컨트롤이 되지 않아서 직접 makecab 을 이용하여 만들기도 했었는데, 이젠 Visual Studio 에서 알아서 해주니 그야말로 편한 세상입니다. 하지만, 역시나 WSP 랑 비슷하게... 제공하는 것을 쓰다보면 맘에 안 드는 부분이 생기기 마련입니다. 직접 컨트롤하던 것과 비교하여 맘에 안 드는 부분이 생겨서 이 부분을 수정할 수 없나하고 뒤져보던 중... 프로젝트 파일 안의 Microsoft.VisualStudio.SharePoint.targets 을 알게 되었습니다. Andrew Connell 아저씨 방식처럼 Deployment Files 폴더 만들고 ddf, Targets 파일 만들고 직접 컨트롤 하는 방식과 유사하다면 유사하다고 할 수 있겠지만, 여기에 신경 좀 썼다는 것을 느낄수가 있었습니다.
첫째로, *.csproj 파일을 열어보면 아래와 같이 한줄이 추가되어 있는 것을 확인할 수 있습니다.
[code:xml;ln=off]
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\SharePointTools\Microsoft.VisualStudio.SharePoint.targets" />
[/code]
위 경로는 다음과 같습니다. ( MSBuildExtensionsPath32 : C:\Program Files (x86)\MSBuild )
"C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\SharePointTools" 즉, 위 경로로 이동하면 targets 파일을 찾을 수가 있는데, 이 파일을 열면 새로운 세상?을 만나게 됩니다. 프로젝트에서 빌드시 해당 내용에 따라 위의 파일에서 분기되어 처리되는 것을 예상하게 됩니다. (설마 아닐까???) (Visual Studio Add-In 제작과 MSBuild 의 사용 및 구성에 대해 공부할 필요를 느낍니다.)
MSBuild 와 Visual Studio 에 Add-In 된 기능들, 그리고 Microsoft.VisualStudio.SharePoint.Tasks.dll 의 로직을 분석하면 Visual Studio 2010 에 추가된 Solution Build 기능의 해부가 가능할 것 같습니다. 하루빨리 누군가가 정리해서 올려주면 감사할 것 같네요~ (넘기기) ^^ 평소에 친숙하지 않는 분야를 건너뛰기 위해선 흘려야 할 피가 많아서??? 여튼, Amazon.com 에 가서 보니, MSBuild 에 대한 정보가 별로 없다고 하군요... 대신 책 하나 좋은 거 있으니 추천별 5개에 그 이름은 Inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build 입니다. 그리고 Visual Studio Add-In 관련해서는 Professional Visual Studio Extensibility (저자 아저씨 머리 웃김...) 입니다. 요즘 사고 싶은 책들이 많아 몸이 근질근질 합니다. ㅠㅠ
기존의 Application 을 VS 2010 에서 Converting 하던 중... 패키징시 Feature 폴더 이름이 "{솔루션 이름}_{Feature 이름}" 이러게 되어 있어 맘에 안들어서 여기까지 왔습니다. 왜 Solution 이름과 Feature 이름이 포함되고 UnderScore( _ ) 는 왜 들어가는지??? (기존 Feature 이름과의 충돌을 막기 위해서라는 생각밖엔...) 만약 이 부분이 커스터마이징이 안된다면 저 책들을 사던지, 아님 돈 없으면 시간과 노력을 투자하던지 할 것 같습니다.
이 분야에서 전문가의 의견을 듣기를 희망하며 다른 분들도 여기에 살짝 발을 담가보시는건 어떠실지??? 추천을 해봅니다.