自动执行本地部署

要自动执行 Cloud Code 模块的部署,您可以配置 C# 项目文件,以便在构建时发布、压缩和部署项目。请参阅了解项目文件以获取更多信息。

该脚本使用 UGS CLI Deploy 命令。

如果要将部署集成到 CI/CD 管线中,请参阅与 CI/CD 集成

先决条件

按照以下步骤操作:

  1. 创建 Cloud Code 模块
  2. 按照安装 CLI(Unity Gaming Services(Unity 游戏服务)CLI)的说明进行 UGS CLI 的安装、配置和身份验证。

项目文件配置

您可以使用以下项目文件配置来自动执行 Cloud Code 模块的部署:

<Target Name="RemoveDirectory">
    <RemoveDir Directories="$(OutDir)Module/" />
 </Target>
<Target Name="PublishModule" DependsOnTargets="RemoveDirectory">
    <Exec Command="dotnet publish -r linux-x64 --no-self-contained -o $(OutDir)Module/$(AssemblyName)" />
</Target>
<Target Name="ZipModule" DependsOnTargets="PublishModule">
    <ZipDirectory SourceDirectory="$(OutDir)Module/$(AssemblyName)" DestinationFile="$(OutDir)Module/$(AssemblyName).ccm" />
</Target>
<Target Name="DeployModule" DependsOnTargets="ZipModule">
    <Exec Command="ugs deploy $(OutDir)/Module/$(AssemblyName).ccm" />
</Target>

将上述配置复制并粘贴到项目文件中。

  • RemoveDirectory 目标从 OutDir 目录中移除 Module 目录。
  • PublishModule 目标将模块发布到 Module 目录并生成所需的程序集。
  • ZipModule 目标压缩 Module 目录。
  • DeployModule 目标将模块部署到 Cloud Code 服务。

Ready to Run 编译(可选)

Ready to Run 编译是一项可缩短 Cloud Code 模块冷启动时间的可选功能。请参阅 Ready to Run 以检查此选项如何影响您的模块。

要启用此选项,请修改 PublishModule 目标以包含 PublishReadyToRun 属性:

<Target Name="PublishModule" DependsOnTargets="RemoveDirectory">
    <Exec Command="dotnet publish -r linux-x64  -p:PublishReadyToRun=true --no-self-contained -o $(OutDir)Module/$(AssemblyName)" />
 </Target>

运行目标

要运行这些目标,请在项目目录中从终端运行以下命令:

msbuild /t:DeployModule

如果未找到 msbuild 命令,可能需要将 msbuild 路径添加到 PATH 环境变量。

注意:您可以通过将 DeployModule 替换为另一个目标名称来单独运行任何其他目标。由于这些目标相互依赖,因此运行任何目标也会运行其所依赖的目标。

预期输出

如果部署成功,则会显示以下输出:

Deployed:
    ExampleModule.ccm