# コードのパッケージ化

> Package your C# code into compression files before you deploy as a live Cloud Code module.


**Frame:**
![](/api/media?file=/cloud-code/media/images/cloud-code-manual-module-publishing-workflow.svg)

モジュールをデプロイするには、コードをアーカイブにパッケージ化する必要があります。アーカイブは、モジュールのデプロイに使用するオーサリング方法に応じて .ccm ファイルまたは .zip ファイルにすることができます。.ccm ファイルは、単純には拡張子が .ccm に変更された ZIP ファイルです。

* [UGS CLI を使用してデプロイする](./write-modules/cli.md) には、コードを .ccm ファイルにパッケージ化する必要があります。
* [Cloud Code Admin API を使用してデプロイする](./write-modules/rest-api.md) には、.ccm ファイルまたは .zip ファイルを受け入れます。

x64 Linux で実行するためにアーカイブにはパッケージ化されたアセンブリのみを入れることができます。

ストレージ制限を確認するには、[Cloud Code 制限](../reference/limits) を参照してください。

> **Important:**
>
> **重要**: これは上級者向けのワークフローです。ほとんどのユースケースでは、[Unity エディター](./write-modules/unity-editor.md) または [UGS CLI](./write-modules/cli.md) を使用して、自動パッケージ化によってモジュールをデプロイでき、このステップはスキップできます。

## Ready to Run (R2R) コンパイル##ready-to-run-r2r-compilation

モジュールプロジェクトのアセンブリを生成する場合は、Ready to Run コンパイルを有効にすることができます。これにより、モジュールのコールドスタート時間が若干向上しますが、最初の呼び出し後のレスポンス時間は向上しません。オプションでは、アセンブリのサイズも増えます。詳細については、[ReadyToRun コンパイル](https://learn.microsoft.com/en-us/dotnet/core/deploying/ready-to-run) に関する Microsoft ドキュメントを参照してください。

## アセンブリの生成##producing-assemblies

この形式でアセンブリを生成するには、以下のセクションで説明するように .NET コマンドラインインターフェース (CLI) または JetBrains Rider や Microsoft Visual Studio などの IDE を使用します。アセンブリは、Cloud Code モジュールエンドポイントを含む [メインモジュールプロジェクト](./module-structure.md) に対してのみ生成する必要があります。

> **Note:**
>
> **ノート**: .NET 6.0 の使用をお勧めします。

### .NET コマンドラインインターフェースの使用##using-the-net-command-line-interface

.NET CLI でアセンブリを生成するには、`dotnet publish` コマンドを使用します。詳細については、[dotnet publish](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-publish) に関する Microsoft ドキュメントを参照してください。

```sh
dotnet publish -c Release -r linux-x64 -p:PublishReadyToRun=true
```

`<PublishReadyToRun>` 設定を追加することにより、プロジェクトにターゲットプラットフォームと R2R コンパイルを指定できます。

```xml
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
```

以下のコマンドを使用してモジュールを公開します。

```sh
dotnet publish -c Release -r linux-x64
```

デフォルトでは、これによりアセンブリが `bin/Release/net6.0/linux-x64/publish` フォルダーに生成されます。

### Microsoft Visual Studio の使用##using-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 コンソールアプリケーションを発行する](https://learn.microsoft.com/en-us/dotnet/core/tutorials/publishing-with-visual-studio?pivots=dotnet-7-0) を確認してください。

### JetBrains Rider の使用##using-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 ドキュメント [Publish .NET applications to folder](https://www.jetbrains.com/help/rider/Run_Debug_Configuration_Publish_to_Folder.html) を参照してください。

## アセンブリのパッケージ化##packaging-the-assemblies

これらのアセンブリを生成した後で、それらをアーカイブに圧縮します。UGS CLI を使用してデプロイすることを計画している場合は、アーカイブの拡張子を .ccm に設定できます。

> **Note:**
>
> **ノート**: Windows のエクスプローラーを使用している場合、アーカイブの拡張子を .ccm に変更するには、[一般的なファイル名拡張子](https://support.microsoft.com/en-us/windows/common-file-name-extensions-in-windows-da4a4430-8e76-89c5-59f7-1cdbbc75cb01) を有効にする必要があります。

アーカイブの構造は以下のようになります。

```text
MyModule.ccm
├─ MyModule.dll
├─ MyModule.deps.json
├─ Dependency1.dll
├─ Dependency2.dll
└─ ...
```

デフォルトでは、これには Cloud Code NuGet パッケージの依存関係が含まれます。

> **Note:**
>
> **ノート**: 生成されたアセンブリには .pdb ファイルも含まれます。これらのファイルは、行番号付きのスタックトレースを生成するために必要です。ただし、モジュールの実行には必要ありません。

[UGS CLI](./write-modules/cli.md#deploy-modules) または [Cloud Code Admin API](./write-modules/rest-api.md#deploy-modules) を使用して、アーカイブをデプロイできます。
