自动执行本地部署
Automate the deployment of your Cloud Code module with the Unity Gaming Services CLI or project file.
阅读时间4 分钟最后更新于 10 个月前
该指南向您展示如何使用 Unity Gaming Services(Unity 游戏服务)(UGS) CLI 或项目文件自动部署 Cloud Code 模块。
如果要将部署集成到 CI/CD 管线中,请参阅与 CI/CD 集成。
先决条件
您需要一个 Cloud Code 模块和 UGS CLI 来自动执行本地部署:
- 创建 Cloud Code 模块。
- 按照安装 CLI(Unity Gaming Services(Unity 游戏服务)CLI)的步骤进行 UGS CLI 的安装、配置和身份验证。
使用 UGS CLI 自动部署
UGS CLI 提供了可用于部署解决方案的 命令。 命令将模块压缩并部署到 Cloud Code 服务。
deploydeploy要进行部署,请在项目目录中从终端运行以下命令:
ugs deploy <path_to_solution>
使用项目文件自动部署
如果您配置项目文件以便在构建时发布、压缩和部署项目,则可以使用项目文件自动执行 Cloud Code 模块的部署。
如需了解更多信息,请参阅 Microsoft 指南:了解项目文件。
该脚本使用 UGS CLI Deploy 命令。
项目文件配置
您可以使用以下项目文件配置来自动执行 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 - 目标将模块部署到 Cloud Code 服务。
DeployModule
Ready to Run 编译(可选)
Ready to Run 编译是一项可缩短 Cloud Code 模块冷启动时间的可选功能。要检查此选项如何影响您的模块,请参阅 [Ready to Run](./package-code.mdx#ready-to-run-r2r-compilation。
要启用 Ready to Run 编译,请修改 目标以包含 属性:
PublishModulePublishReadyToRun<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 msbuildPATH预期输出
如果部署成功,则会显示以下输出:
Deployed: ExampleModule.ccm