Compile Apps Your Way With Custom Tasks For The Microsoft Build Engine

Slides:



Advertisements
Similar presentations
10장. 시기별 학급경영 11조 염지수 이 슬 권용민 신해식.
Advertisements

일본 근세사. (1) 에도막부의 개창 ( ㄱ ) 세키가하라의 전투 (1600) - 히데요시의 사후 다섯 명의 다이로 ( 大老 ) 가운데 최대 영지 (250 만석 ) 를 보유하고 있던 도쿠가와 이에야스가 급부상. 이에 이에야스와 반목해 온 이시다 미쓰나리 ( 石田三成 ),
아니마 / 아니무스 송문주 조아라. 아니마 아니마란 ? 남성의 마음속에 있는 여성적 심리 경향이 인격화 한 것. 막연한 느낌이나 기분, 예견적인 육감, 비합리적인 것에 대 한 감수성, 개인적인 사랑의 능력, 자연에 대한 감정, 그리.
대구가톨릭대학교 체육교육과 06 학번 영안중학교 체육교사 신웅섭 반갑습니다. 반야월초등학교 축구부 대륜중학교 축구부 대륜고등학교 대구가톨릭대학교 차석 입학 대구가톨릭대학교 수석 졸업 2014 년 경북중등임용 체육 차석 합격 영안중학교 체육교사 근무 소개.
일장 - 1 일 24 시간 중의 명기 ( 낮 ) 의 길이 ( 밤은 암기, 낮은 명기 ) 광주기성 - 하루 중 낮의 길이의 장단에 따라 식물의 꽃눈 형성이 달라지는 현상 일장이 식물의 개화현상을 조절하는 중요한 요인 단일식물 - 단일조건에서 개화가 촉진되는 식물 장일식물.
2 학년 6 반 1 조 고은수 구성현 권오제 김강서.  해당 언어에 본디부터 있던 말이나 그것에 기초하여 새로 만들어진 말  어떤 고장 고유의 독특한 말  Ex) 아버지, 어머니, 하늘, 땅.
© DBLAB, SNU 화일구조. 강의 소개 - 화일구조  Instructor : Prof. Sukho Lee (301 동 404 호 )  홈페이지 :  교과목 개요 – 이 과목은 데이타 관리와 응용을 위한 화일 구조의 설계와.
2014년도 교원 및 기간제교사 성과상여금 전달교육 개 회 국기에 대한 경례 - 인사말
화일구조.
선진 고양교육 “유아교육 행정 업무 연수” 유치원 회계실무 및 유아학비 연수 경기도고양교육청.
2016년도 제2차 서비스 자격시험 고사장 안내 시험종목: 병원서비스코디네이터, 서비스경영컨설턴트,
묵자 겸애, 비명, 비공, 상현, 상동, 천지, 명귀, 삼표 법.
내 아이를 위한 구강관리.
제16장 원무통계 • 분석 ☞ 통계란 특정의 사실을 일정한 기준에 의하여 숫자로 표시한 것을 말한다.통계로서 활용할 수 있는 조건으로는 ① 동질성을 지녀야 하고 ② 기준이 명확하고 ③ 계속성이 지속되어야 하며 ④ 숫자로 표시하여야 한다 경영실적의.
Chapter 02 JAVA 프로그래밍 시작하기 01 실무에서 사용하는 JAVA 개발 환경 02 JAVA 프로그램 작성
서울지방세무사회 부가세 교육 사진클릭-자료 다운 세무사 김재우.
Windows CE 시스템 개발 환경 구축.
치매의 예방 김 은민 윤금 노인요양원 치매의.
크로스 컴파일 환경 구축.
[INA470] Java Programming Youn-Hee Han
1. C 언어의 이해와 컴파일러 설치.
1장 Visual Basic 2010 시작 1.1 프로그램에 대한 기초 1.2 Visual Basic 버전
인스톨쉴드9 데브스튜디오 사용 매뉴얼 (VB6에서 개발후 배포프로그램 만들기)
Computer Science & Engineering
1 C 언어의 이해와 컴파일러 설치 프로그래밍 환경을 구축하자!.
TinyOS 사용법 및 nesC Programming
OpenGL Project (3D 움직이는 자동차)
Visual C++ Programming
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
어셈블리어 및 실습 금 1,2 (314) / 금 3,4 (307) RTDCS 이 종 태
1장. 프로그래밍 언어, C 프로그래밍.
Geek-OS Project 정영진
Visual Basic 기초 1 목표: 컴퓨터기반제어에 관련된 학습을 하기 전에 Visual Basic의 기초를 살펴본다.
작업장에서 불의의사고로 절단사고가 발생했다면
1주차: 프로그래밍언어란 무엇인가? C 언어란? C 프로그래밍을 위한 준비
마산에 대하여 만든이 : 2204 김신우, 2202 권성헌.
OpenGL ES 실행을 위한 Emulator(Pocket PC 2003) 설정
openGL Project 제안서 비 오는 정류장에서
Project apk 디컴파일과 난독화(with Proguard)
2015. 인문소양교육.
SystemC 설치 (Visual Studio 2010)
Appendix A 구조적 시스템 개발 방법론.
Stocker Controller System 소개
WinCE Device Driver 실습 #2
Bingo 빙고 따라가기.
기초C언어 제4주 실습 프로젝트 아카이브로 저장하기/가져오 기 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
CH2. ASP.NET 페이지 분석 HTML ASP ASP.NET 의 차이점.
Operating System Multiple Access Chatting Program using Multithread
업무 메뉴얼 1. 사무용품/소모품 청구의뢰서 작성요령 2. 법인 등기부등본/법인 인감증명 발급 요청서 작성요령
화일구조.
○ 직 무 기 술 서 드라이빙센터 매니저 1. 주요 업무 2. 자격요건 직 무 드라이빙센터 매니저 근무형태
openGL Project 제안서 - 해상 전투
영인면 종합발전 전략수립 노인복지부문 전혜정 (호서대학교 노인복지학과)
2장 비주얼베이직 시작하기 2.1 비주얼베이직 프로그래밍 스타일 2.2 비주얼베이직 시작하기.
교육방법 및 평가방법 안내.
C언어 개론.
6장 마케팅 조사 박소현, 김중호, 박기찬.
한밭대학교 창업경영대학원 회계정보학과 장 광 식
05 ASP.NET 2.0 페이지 및 응용 프로그램 구조 웹 폼(Web Form) 웹 폼 이벤트
1. Cut 편집.
(생각열기) 횡파와 종파를 구분하는 기준은 무엇인가?? 답 : 진동하는 방법의 차이
음양오행과 물리학 조 원 : 김용훈, 양범길, 박수진, 윤진희, 이경남, 박미옥, 박지선 (11조)
1 개인과 공동체 04. 사회적 약자 보호 정책 및 지역 격차 해소 정책 사회적 약자 보호 정책 지역 격차 해소 정책
1장 Visual Basic 2010 시작 1.1 프로그램에 대한 기초 1.2 Visual Basic 버전
이야기 치료에 대하여 <8조 학문적 글쓰기 발표> 주희록 최은지
OpenGL ES 실행을 위한 Emulator(Pocket PC 2003) 설정
Microprocessor Design and Application 마이크로 프로세서 설계 및 응용 2017 Spring
WinCE Device Driver 실습 #2
유예 X-FILE *조사자* 1301권희원 1315이예지 1317장아정 1322홍자현.
중국문학개론 한부와 겅건안문학 중어중국학과 ㅇ이진원 한부와 건안문학.
Presentation transcript:

Compile Apps Your Way With Custom Tasks For The Microsoft Build Engine Inside MSBuild Compile Apps Your Way With Custom Tasks For The Microsoft Build Engine

MSBuild 개요 MS의 새로운 빌드 플랫폼 Visual Studio가 설치되어 있지 않아도 빌드가능 프로젝트 파일 항목 (Item) 속성 (Property) 작업 (Task) 대상 (Target) 로깅 (Logging)

항목 (Item) <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> <Stuff Include=“*.cs" Exclude = “One.cs”> <Display>false</Display> </Stuff> <Stuff Include="Two.cs"> <Display>true</Display> </ItemGroup> <Target Name="Batching"> <Message Text="@(Stuff)" Condition=" '%(Display)' == 'true' "/> </Target> </Project>

항목 (Item) 빌드 시스템에 대한 입력 항목 컬렉션으로 그룹화 빌드 프로세스의 단계를 수행하는 작업의 매개 변수 ItemGroup 노드의 자식노드 와일드 카드 사용 (**, * , ?) Ex) Include="Images\\**\*.jpg" - Images 폴더부터 모든 하위 폴더 에서 확장자가 jpg인 파일만 찾는다. Exclude 특성 사용 항목 참조 : @(ItemCollectionName) Ex) @(Stuff) 항목 메타데이타 Ex) <Display>false</Display> 항목 메타데이타 참조 : %(ItemMetadataName) or %(ItemCollectionName.ItemMetaDataName)

항목 (Item) 항목 메타데이터 설명 %(FullPath) 항목의 전체 경로를 포함합니다. C:\MyProject\Source\Program.cs %(RootDir) 항목의 루트 디렉터리를 포함합니다. C:\ %(Filename) 확장명을 제외한 항목의 파일 이름을 포함합니다. %(Extension) 항목의 파일 이름 확장명을 포함합니다. .cs %(RelativeDir) 현재 작업 디렉터리에 상대적인 디렉터리 경로를 포함합니다. Source\ %(Directory) 항목의 루트 디렉터리를 제외한 디렉터리를 포함합니다. MyProject\Source\ %(RecursiveDir) Include 특성에 와일드카드 **가 있는 경우 이 메타데이터는 와일드카드를 대체한 디렉터리를 지정하여 항목을 찾습니다. <ItemGroup> <MyItem Include="C:\**\Program.cs" /> </ItemGroup> %(Identity) Include 특성에 지정된 항목입니다. 예를 들면 다음과 같습니다. Source\Program.cs %(ModifiedTime) 항목이 마지막으로 수정된 시간의 타임스탬프를 포함합니다. 2004-07-01 00:21:31.5073316 %(CreatedTime) 항목이 만들어진 시간의 타임스탬프를 포함합니다. 2004-06-25 09:26:45.8237425 %(AccessedTime) 시간이 마지막으로 액세스된 시간의 타임스탬프를 포함합니다. 2004-08-14 16:52:36.3168743

속성 (Property) <Project DefaultTargets = "Compile"> <ItemGroup> <CSFile Include = "consolehwcs1.cs"/> </ItemGroup> <PropertyGroup> <OutputType>WinExe</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>Framework.Tools.ErWinParser</RootNamespace> <AssemblyName>Framework.Tools.ErWinParser</AssemblyName> </PropertyGroup> <Target Name = "Compile"> <CSC Sources = "@(CSFile)" OutputAssembly = "$(MSBuildProjectName).exe" > <!-- Set the OutputAssembly attribute of the CSC task to the name of the project --> <Output TaskParameter = "OutputAssembly" ItemName = "EXEFile" /> </CSC> <!-- Log the file name of the output file --> <Message Text="The output file is @(EXEFile)"/> </Target> </Project>

속성 (Property) 키 / 값 쌍으로 이루어 진다. 항목은 컬렉션에 저장 되지만 속성은 단일 스칼라 값을 포함한다. 메타데이타를 포함하지 않는다. PropertyGroup 노드의 자식노드 속성참조 : $(PropertyName) 명령줄 /property or /p

속성 (Property) 예약 속성 설명 MSBuildProjectDirectory 프로젝트 파일이 있는 디렉터리의 절대 경로입니다. C:\MyCompany\MyProduct MSBuildProjectFile 파일 이름 확장명을 포함하는 프로젝트 파일의 전체 파일 이름 MyApp.proj MSBuildProjectExtension 마침표를 포함하는 프로젝트 파일의 파일 이름 확장명 .proj MSBuildProjectFullPath 프로젝트 파일의 절대 경로와 전체 파일 이름 C:\MyCompany\MyProduct\MyApp.proj MSBuildProjectName 파일 이름 확장명을 제외한 프로젝트 파일의 파일 이름 MyApp MSBuildBinPath 현재 사용되고 있는 MSBuild 이진 파일이 있는 디렉터리의 절대 경로 C:\Windows\Microsoft.Net\Framework\v2.0 MSBuildProjectDefaultTargets 기본 Target <Project DefaultTargets="A;B;C" > MSBuildExtensionsPath Program Files 디렉터리 아래의 MSBuild 폴더입니다. 이 위치는 사용자 지정 대상 파일을 넣는 데 유용합니다. 예를 들어, 대상 파일을 \Program Files\MSBuild\MyFiles\Northwind.targets에 설치한 후 다음 XML을 사용하여 프로젝트 파일로 가져올 수 있습니다. <Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/>

속성 (Property) 환경변수 항목은 컬렉션에 저장 되지만 속성은 단일 스칼라 값을 포함한다. 메타데이타를 포함하지 않는다. PropertyGroup 노드의 자식노드 속성참조 : $(PropertyName) 명령줄 /property or /p

작업 (Task) <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> <Stuff Include=“*.cs" Exclude = “One.cs”> <Display>false</Display> </Stuff> <Stuff Include="Two.cs"> <Display>true</Display> </ItemGroup> <Target Name="Batching"> <Message Text="@(Stuff)" Condition=" '%(Display)' == 'true' "/> </Target> </Project>

작업 (Task) 재사용 가능한 실행 코드 단위 Managed Code 로 작성 (C#, VB.NET 등) Using Task 문 ITask 인터페이스 구현

작업 (Task) Using Task <UsingTask TaskName="TaskName" AssemblyName = “AsmName" Condition="'String A'=='String B'" />

작업 (Task) Using Task <UsingTask TaskName="TaskName" AssemblyName = “AsmName" Condition="'String A'=='String B'" /> Using Task 특성 설명 AssemblyName AssemblyName 또는 AssemblyFile 특성이 필요합니다. 로드할 어셈블리의 이름입니다. AssemblyName 특성에서는 강력한 이름의 어셈블리를 허용하지만 필수적 요소는 아닙니다. AssemblyFile 특성을 사용하는 경우에는 이 특성을 사용할 수 없습니다 AssemblyFile 어셈블리의 파일 경로입니다. 이 특성에는 전체 경로와 상대 경로를 모두 사용할 수 있습니다. 상대 경로는 현재 프로젝트 디렉터리를 기준으로 합니다. AssemblyName 특성을 사용하는 경우에는 이 특성을 사용할 수 없습니다. TaskName 필수 특성입니다. 어셈블리에서 참조할 작업의 이름입니다. 모호성이 발생할 가능성이 있으면 이 특성에 항상 전체 네임스페이스를 지정해야 합니다. Condition 선택적 특성입니다.

작업 (Task) 작업 참조 (ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/dv_fxgenref/html/b3144b27-a426-4259-b8ae-5f7991b202b6.htm) Copy Task Delete Task Exec Task MakeDir Task Message Task Csc Task Vbc Task 기타

대상 (Target) Target DependsOnTargets <Target Name="Build" DependsOnTargets="Resources"> <Csc Sources="hello.cs" Resources="@(Resources)" OutputAssembly="hello.exe"/> </Target>

로깅 (Logging) MSBuild 로거 빌드 Event, , 메시지, 경고 및 오류 정보 Console 로거 : 파일로거 /consoleloggerparameters - 사용 /noconsolelogger - 비활성화 파일로거 /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log Ex ) MSBuild MyProj.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log append=true;verbosity=diagnostic;encoding=utf-8 ILogger 인터페이스 구현 Logger 클래스 상속