簡體   English   中英

使用MSBuild和CSPack任務打包Azure角色

[英]Using MSBuild and CSPack task to package Azure roles

我正在為Azure Web角色項目編寫構建腳本。 該腳本將在構建服務器上運行,因此使用VS是非啟動器。

我可以使用MSBuild構建項目,並使用CmdLets for Azure來處理部署(通過PowerShell)。 缺少的部分是雲包的創建。 我可以使用SDK中包含的CSPack.exe工具,但是如果可能的話,我想使用MSBuild任務,因為這樣我可以利用構建配置選項並將包的創建與進程的其余部分集成。

我在Azure Web部署項目中進行了挖掘,但是我找不到對CSPack任務的任何引用。 除非我缺少引用CSPack / Azure任務的文件,否則可能會發生一些VS魔術。 我正在看的程序集是Microsoft.ServiceHosting.Tools.MSBuildTasks.dll - 反射器告訴我CSPack任務就在那里。

有沒有人成功使用過CSPack MSBuild任務? 如果是這樣,任何關於如何使用它的指針將非常有幫助!

如果我正在咆哮完全錯誤的樹,請告訴我!

謝謝,埃里克

CSpack任務是Microsoft.CloudService.Targets msbuild文件的一部分。 在默認安裝中,這是在

C:\\ Program Files(x86)\\ MSbuild \\ Microsoft \\ CloudService \\ 1.0 \\ Visual Studio 10 \\

您將在任何.ccproj(雲服務)項目中看到對此的引用

<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

我正在使用它們,但我在構建服務器上安裝了Visual Studio和Azure SDK 1.3。 我無法找到任何方法。 您可能會在構建服務器上使用Visual Studio Express,因此您可能需要先嘗試一下。

我正在使用

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

其中PackageCommand是您在命令行中用來調用cspack.exe的地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM