打包代码
要部署模块,必须将代码打包到存档中。存档可以是 .ccm 文件或 .zip 文件,具体取决于用于部署模块的创作方法。.ccm 文件其实就是扩展名为 .ccm 的 ZIP 文件。
- 使用 UGS CLI 进行部署时需要将代码打包到 .ccm 文件中。
- 使用 Cloud Code Admin API 进行部署时接受 .ccm 文件或 .zip 文件。
存档中只能包含要在 x64 Linux 上运行的经过打包的程序集。
请参阅 Cloud Code 限制以检查存储限制。
Ready to Run (R2R) 编译
在为模块项目生成程序集时,可以启用 Ready to Run 编译。该选项可以略微缩短模块的冷启动时间,但不会改善第一次调用后的响应时间。该选项还会增加程序集的大小。请查看有关 ReadyToRun 编译的 Microsoft 文档以了解更多详细信息。
生成程序集
要生成此格式的程序集,请使用 .NET 命令行界面 (CLI) 或集成开发环境(如 JetBrains Rider 或 Microsoft Visual Studio),如以下各节所述。务必仅为包含 Cloud Code 模块终端的主模块项目生成程序集。
注意:建议使用 .NET 6.0。
使用 .NET 命令行界面
要使用 .NET CLI 生成程序集,请使用 dotnet publish
命令。请参阅有关 dotnet publish 的 Microsoft 文档以了解更多详细信息。
dotnet publish -c Release -r linux-x64 -p:PublishReadyToRun=true
您可以通过添加 <PublishReadyToRun>
设置来指定项目中的目标平台和 R2R 编译。
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
使用以下命令发布模块:
dotnet publish -c Release -r linux-x64
默认情况下,此命令会在 bin/Release/net6.0/linux-x64/publish
文件夹中生成程序集。
使用 Microsoft Visual Studio
您可以使用 Microsoft Visual Studio 生成程序集。为此,请按照下列步骤操作:
- 右键单击模块的 C# 项目,然后从菜单中选择 Publish(发布)。
- 在 **Publish(发布)**页面上执行以下操作:
- 选择 **Folder(文件夹)**作为目标,然后选择 Next(下一步)。
- 选择 **Folder(文件夹)**作为具体目标,然后选择 Next(下一步)。
- 选择 Finish(完成)。
- 在 Publish profile creation progress(发布配置文件创建进度)页面上,选择 Close(关闭)。
- 在 Publish(发布)窗口的 Publish(发布)选项卡中,选择 Show all settings(显示所有设置)。
- 确保目标运行时为
linux-x64
。 - (可选)确保 PublishReadyToRun 已激活。
- 选择 Publish(发布)。
如需了解更多详细信息,请查看 Microsoft 文档中的使用 Visual Studio 发布 .NET 控制台应用程序教程。
使用 JetBrains Rider
您可以使用 JetBrains Rider 生成程序集。为此,请按照下列步骤操作:
- 打开 Run(运行)> Edit Configurations...(编辑配置...),或从导航栏中选择 Edit Configurations(编辑配置)。
- 选择 + > Add New Configuration(添加新配置)。
- 选择 **Publish to folder(发布到文件夹)**配置类型。
- 将 **Target runtime(目标运行时)**设置为
linux-x64
。 - (可选)激活 Enable ReadyToRun compilation(启用 ReadyToRun 编译)。
- 选择 **Apply(应用)**以保存配置。
- 准备好发布模块时,在工具栏上选择创建的运行配置,然后选择 Run(运行)。
如需了解更多详细信息,请查看 JetBrains Rider 文档中的将 .NET 应用程序发布到文件夹。
打包程序集
生成这些程序集后,应将它们压缩到存档中。如果计划使用 UGS CLI 进行部署,可以将存档文件扩展名设置为 .ccm。
注意:如果是在 Windows 中使用文件资源管理器,必须启用通用文件扩展名以将存档文件扩展名更改为 .ccm。
存档的结构应如下所示:
MyModule.ccm
├─ MyModule.dll
├─ MyModule.deps.json
├─ Dependency1.dll
├─ Dependency2.dll
└─ ...
默认情况下,这将包括 Cloud Code NuGet 包的依赖项。
注意:生成的程序集还包含 .pdb 文件。这些文件是生成带有行号的堆栈跟踪所必需的文件。但是,运行模块时不需要这些文件。
然后,您可以使用 UGS CLI 或 Cloud Code Admin API 来部署存档。