自动执行本地部署
要自动执行 Cloud Code 模块的部署,您可以配置 C# 项目文件,以便在构建时发布、压缩和部署项目。请参阅了解项目文件以获取更多信息。
该脚本使用 UGS CLI Deploy 命令。
如果要将部署集成到 CI/CD 管线中,请参阅与 CI/CD 集成。
先决条件
按照以下步骤操作:
- 创建 Cloud Code 模块。
- 按照安装 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