首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MSBuild和CSPack任务打包Azure角色

使用MSBuild和CSPack任务打包Azure角色
EN

Stack Overflow用户
提问于 2011-01-19 12:14:36
回答 3查看 8.6K关注 0票数 9

我正在为Azure web角色项目编写构建脚本。该脚本将在构建服务器上运行,因此使用VS是不可行的。

我可以使用MSBuild构建项目,并使用CmdLets for Azure处理部署(通过PowerShell)。缺少的部分是云包的创建。我可以使用SDK中包含的CSPack.exe工具,但如果可能的话,我希望使用MSBuild tasks,因为这样我就可以利用构建配置选项,并将包的创建与流程的其余部分集成在一起。

我在Azure web部署项目中到处寻找,但我找不到任何对CSPack任务的引用。这里可能会发生一些VS魔术,除非我错过了引用CSPack/Azure任务的文件。我正在查看的程序集是Microsoft.ServiceHosting.Tools.MSBuildTasks.dll - reflector,它告诉我CSPack任务就在其中。

是否有人成功使用了CSPack MSBuild任务?如果是这样的话,任何关于如何使用它的指导都会非常有帮助!

如果我完全找错了地方,请让我知道!

谢谢,埃里克

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-28 23:30:34

构建任务是Microsoft.CloudService.Targets msbuild文件的一部分。在默认安装中,此位置为

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

您将在任何.ccproj (云服务)项目中看到对此的引用

代码语言:javascript
复制
<CloudExtensionsDir Condition=" '$(CloudExtensionsDir)' == '' ">$(MSBuildExtensionsPath)\Microsoft\Cloud Service\1.0\Visual Studio 10.0\</CloudExtensionsDir>

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

从那里你可以得到基本的格式和几个变种。例如,这是使用它的CorePublish目标

代码语言:javascript
复制
<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

票数 7
EN

Stack Overflow用户

发布于 2011-01-20 00:00:30

我正在使用它们,但我在构建服务器上安装了Visual Studio和Azure SDK 1.3。我找不到任何绕过它的方法。您可以在构建服务器上使用Visual Studio Express,因此您可能希望先试一试。

票数 1
EN

Stack Overflow用户

发布于 2011-01-20 02:52:59

我只是在用

代码语言:javascript
复制
<Exec Command="$(PackageCommand)" WorkingDirectory="$(BuildProjectFolderPath)\..\main\source\" />

其中,PackageCommand是您在命令行中用来调用cspack.exe的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4731665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档