2011-01-19 2 views
9

Azure 웹 역할 프로젝트를위한 빌드 스크립트 작업 중입니다. 이 스크립트는 빌드 서버에서 실행되므로 VS를 사용하는 것이 비 스타터입니다.MSBuild 및 CSPack 태스크를 사용하여 Azure 역할 패키지하기

MSBuild를 사용하여 프로젝트를 빌드하고 CmdLets for Azure을 사용하여 배포를 처리 할 수 ​​있습니다 (PowerShell 사용). 누락 된 부분은 클라우드 패키지 생성입니다. SDK에 포함 된 CSPack.exe 도구를 사용할 수는 있지만 가능한 경우 MSBuild 작업을 사용하고 싶습니다. 그런 식으로 빌드 구성 옵션을 활용하고 나머지 프로세스와 패키지 생성을 통합 할 수 있습니다.

저는 Azure 웹 배포 프로젝트에서 파고 들었지만 CSPack 작업에 대한 참조를 찾을 수 없습니다. CSPack/Azure 작업을 참조하는 파일이 누락 된 경우가 아니라면 여기에 VS 마술이 발생할 수 있습니다. 내가보고있는 어셈블리는 Microsoft.ServiceHosting.Tools.MSBuildTasks.dll입니다. 반사경은 CSPack Task가 있음을 알려줍니다.

누구나 성공적으로 CSPack MSBuild 작업을 사용 했습니까? 그렇다면, 그것을 사용하는 방법에 대한 모든 포인터는 매우 도움이 될 것입니다!

완전히 잘못된 나무를 짖고 있다면 알려주세요!

감사합니다, 에릭

답변

7

CSpack 작업은 Microsoft.CloudService.Targets msbuild 파일의 일부입니다. 기본에 설치 이것이

C에서 : \의 Program Files (x86) \ MSBuild를 \ 마이크로 소프트 \ CloudService 당신은 어떤 .ccproj이에 대한 참조를 볼 수 있습니다 10 \

1.0 \ Visual Studio를 \ (구름 서비스) 프로젝트

<CloudExtensionsDir Condition=" '$(CloudExtensionsDir)' == '' ">$(MSBuildExtensionsPath)\Microsoft\Cloud Service\1.0\Visual Studio 10.0\</CloudExtensionsDir> 

<Import Project="$(CloudExtensionsDir)Microsoft.CloudService.targets" /> 

거기에서 기본 형식과 몇 가지 변형을 얻을 수 있습니다. 예를 들어,이 코드를 사용하는 CorePublish 타겟입니다.

<CSPack 
    ServiceDefinitionFile="@(ServiceDefinitionCopy)" 
    Output="$(OutDir)Publish\$(ProjectName).cspkg" 
    PackRoles="@(Roles)" 
    SiteMapping="@(SiteMapping)" 
    RoleProperties="@(RoleProperties)" 
    CopyOnly="false" 
    > 
</CSPack> 

이 방법을 사용하여 클라우드 패키지를 생성합니다. 여기에 조언이 필요한 특정 시나리오 인 경우 해당 세부 정보를 제공해주십시오. 우리의 사용법은 꽤 일반적입니다. (여러분처럼) msbuild를 사용하여 명령 행을 호출하는 데 관심이 없었습니다.

그래서, 하나는 단순히

msbuild MyAzureProject.ccproj /t:CorePublish

를 발행하거나 멀티 평준화 프로젝트 폴더와 해결책을 가지고와 릴리스를 포장하려는 경우

msbuild MyAzureProject\MyAzureProject.ccproj /t:CorePublish /Property:SolutionDir=..\ /p:Configuration=Release

+0

테일러, 응답 주셔서 감사합니다. 나머지 부분의 MSBuild 파일 (푸른 부분 만)을 게시 할 수 있습니까? 그것은 매우 도움이 될 것입니다. 고마워요. 에릭 –

+0

확실 해요. 나중에 오늘 같이 정리하고 오늘 밤에 뭔가를 얻을께요. –

+0

@ 테일러는 그걸 함께 할 기회를 얻었습니까? msBuild가 패키지를 생성하는 데 문제가 있습니다. – Joe

1

내가 그들을 사용하고 있지만 Visual Studio 및 빌드 서버에 설치된 푸른 SDK 1.3을 가지고있다. 나는 그 주위에 어떤 방법도 찾을 수 없었다. 빌드 서버에서 Visual Studio Express를 사용하면 문제를 해결할 수 있습니다.

+0

수 비트 수있는 모든 것을 함께 조립할 당신은 내가 당신이 그 업무를 어떻게 사용하고 있는지에 대한 예를 든다. 이것이 제가 풀려고하는 첫 번째 문제입니다. 아무런 예를 찾을 수 없었습니다. –

+0

저는 빌드 서버에서 클라우드 프로젝트 유형을 사용하고 있습니다. cspack을 직접 호출하는 것은 내 일 목록에 있지만 아직 그것을 최상위에 올려 놓은 것은 아닙니다. –

1

PackageCommand 당신이 cspack.exe를 호출하는 명령 줄에서 사용하는 것입니다 난 그냥

<Exec Command="$(PackageCommand)" WorkingDirectory="$(BuildProjectFolderPath)\..\main\source\" /> 

을 사용하고 있습니다.

+0

카를로스에게 감사드립니다. 나는 커맨드 라인을 사용하지 않기를 바랬지 만 거기서 끝날지도 모른다. –

관련 문제