문제

우리는 작업에서 VB/C# .NET로 개발 된 중간 크기의 Windows 응용 프로그램을 유지 관리합니다. 여전히이 앱의 빌드 및 배포 프로세스는 매뉴얼입니다. 나는 아직 지식이없는 MSBuild를 사용 하여이 프로세스를 자동화하기로 결심했습니다.

당사의 앱에는 간단한 빌드 구조가 있으며 이미 4 개의 솔루션 (.SLN)으로 그룹화 된 프로젝트 세트가 있으며 순서대로 4 개의 SLN을 구축해야합니다. 그런 다음 프로젝트 (마지막 SLN의 일부인)를 디렉토리에 게시하십시오. 그게 다야. 이미 30 분의 수동 빌드 시간을 소비하는 간단한 프로세스이며, 1/4 시간의 MSBuild를 사용하여 수동 간섭 없이도이를 수행 할 수 있다고 확신합니다.

내 모든 목표가 잘 설정되었고, 나는 내 프로세스를 달성하기 위해 MSBuild 리소스를 위해 웹을 찾기 시작했지만 많은 것을 둘러 볼 수 있습니다. 간단한 시나리오를 위해 시작하는 방법과 시작 방법에 대한 포인터 또는 좋은 설명이 필요합니다. 도움을 주셔서 감사합니다.

도움이 되었습니까?

해결책

이것은 매우 쉬운 스크립트처럼 들립니다. 배치 파일조차도 다음과 같습니다.

msbuild \path\to\first.sln /p:Configuration=Release
msbuild \path\to\second.sln /p:Configuration=Release
msbuild \path\to\third.sln /p:Configuration=Release
msbuild \path\to\fourth.sln /p:Configuration=Release
call deploy

물론 서버를 실행하는 것이 훨씬 더 좋을 것입니다. cruisecontrol.net, 그것은 빌드 상태와 기록에 웹 인터페이스를 제공합니다.

MS 빌드에는 발신자를위한 두 가지 주요 제어 지점, 즉 대상과 그 속성이 있습니다. 대상은 컴파일, 리소스, 컴파일, 배포 등입니다. 속성은 해당 대상이 구축되는 방식을 제어합니다.

당신은 그것을 사용하여 구성을 제어 할 수 있습니다 구성 속성 (위 참조). *. *proj 파일을 열면 알 수 있습니다. PropertyGroup 집단. 이것들은 이것을 사용하여 명령을 통해 해결할 수 있습니다 /p arg.

두 개의 Args의 사양은 다음과 같습니다.

/target:<targets>  Build these targets in this project. Use a semicolon or a
                 comma to separate multiple targets, or specify each
                 target separately. (Short form: /t)
                 Example:
                   /target:Resources;Compile

/property:<n>=<v>  Set or override these project-level properties. <n> is
                 the property name, and <v> is the property value. Use a
                 semicolon or a comma to separate multiple properties, or
                 specify each property separately. (Short form: /p)
                 Example:
                   /property:WarningLevel=2;OutDir=bin\Debug\

다른 팁

좋은 가이드가 있습니다 MSBuild, Continuous Integration 및 CuriseControl.net에 대한 많은 정보가 있습니다. 확실히 시작하기에 좋은 곳입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top