打包代码

要部署模块,必须将代码打包到存档中。存档可以是 .ccm 文件或 .zip 文件,具体取决于用于部署模块的创作方法。.ccm 文件其实就是扩展名为 .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 生成程序集。为此,请按照下列步骤操作:

  1. 右键单击模块的 C# 项目,然后从菜单中选择 Publish(发布)
  2. 在 **Publish(发布)**页面上执行以下操作:
    1. 选择 **Folder(文件夹)**作为目标,然后选择 Next(下一步)
    2. 选择 **Folder(文件夹)**作为具体目标,然后选择 Next(下一步)
    3. 选择 Finish(完成)
    4. 在 Publish profile creation progress(发布配置文件创建进度)页面上,选择 Close(关闭)
    5. 在 Publish(发布)窗口的 Publish(发布)选项卡中,选择 Show all settings(显示所有设置)
    6. 确保目标运行时为 linux-x64
    7. (可选)确保 PublishReadyToRun 已激活。
    8. 选择 Publish(发布)

如需了解更多详细信息,请查看 Microsoft 文档中的使用 Visual Studio 发布 .NET 控制台应用程序教程。

使用 JetBrains Rider

您可以使用 JetBrains Rider 生成程序集。为此,请按照下列步骤操作:

  1. 打开 Run(运行)> Edit Configurations...(编辑配置...),或从导航栏中选择 Edit Configurations(编辑配置)
  2. 选择 + > Add New Configuration(添加新配置)
  3. 选择 **Publish to folder(发布到文件夹)**配置类型。
  4. 将 **Target runtime(目标运行时)**设置为 linux-x64
  5. (可选)激活 Enable ReadyToRun compilation(启用 ReadyToRun 编译)
  6. 选择 **Apply(应用)**以保存配置。
  7. 准备好发布模块时,在工具栏上选择创建的运行配置,然后选择 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 CLICloud Code Admin API 来部署存档。