gpt4 book ai didi

.net - 使用 MSBuild 和 CSPack 任务打包 Azure 角色

转载 作者:行者123 更新时间:2023-12-04 04:00:36 28 4
gpt4 key购买 nike

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

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

我已经深入研究了 Azure Web 部署项目,但找不到任何对 CSPack 任务的引用。这里可能会发生一些 VS 魔法,除非我丢失了引用 CSPack/Azure 任务的文件。我正在查看的程序集是 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

关于.net - 使用 MSBuild 和 CSPack 任务打包 Azure 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4731665/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com