# アセンブリのメタデータとコンパイルの詳細

> Define metadata for your assemblies.

アセンブリに追加のメタデータを定義し、プロジェクトビルドに含まれるアセンブリの情報を取得することができます。

## アセンブリ属性の設定##setting-assembly-attributes

アセンブリ属性を使用して、アセンブリのメタデータプロパティを設定できます。慣習的に、アセンブリ属性ステートメントは `AssemblyInfo.cs` という名前のファイルに記述します。

例えば、以下のアセンブリ属性は、いくつかの \[.NET アセンブリメタデータ値]、テストに役立つ `[InternalsVisibleTo]` 属性、Unity 定義の [Preserve 属性](/engine/6000.0/script-reference/unity-engine-scripting/preserve-attribute.md) (プロジェクトをビルドする際に未使用のコードをアセンブリから削除する方法に影響します) を指定します。

```csharp
[assembly: System.Reflection.AssemblyCompany("Bee Corp.")]
[assembly: System.Reflection.AssemblyTitle("Bee's Assembly")]
[assembly: System.Reflection.AssemblyCopyright("Copyright 2020.")]
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("UnitTestAssembly")]
[assembly: UnityEngine.Scripting.Preserve]
```

## ビルドスクリプトでアセンブリ情報を取得##getting-assembly-information-in-build-scripts

[CompilationPipeline](/engine/6000.0/script-reference/unity-editor-compilation/compilation-pipeline.md) クラスを使用して、Unity がプロジェクトのためにビルドしたすべてのアセンブリ (Assembly Definition アセットに基づいて作成されたものを含む) に関する情報を取得できます。

例えば、次のスクリプトは、`CompilationPipeline` クラスを使用して、プロジェクトの現在の Player アセンブリをすべて列挙します。

```csharp
using UnityEditor;
using UnityEditor.Compilation;
public static class AssemblyLister
{
    [MenuItem("Tools/List Player Assemblies in Console")]
    public static void PrintAssemblyNames()
    {
        UnityEngine.Debug.Log("== Player Assemblies ==");
        Assembly[] playerAssemblies =
            CompilationPipeline.GetAssemblies(AssembliesType.Player);

        foreach (var assembly in playerAssemblies)
        {
            UnityEngine.Debug.Log(assembly.name);
        }
    }
}
```

## 追加リソース##additional-resources

* [アセンブリ定義の作成](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/assembly-definitions-creating.md)
* [アセンブリの参照](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/assembly-definitions-referencing.md)
* [Assembly Definition のプロパティ](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/class-assembly-definition-importer.md)
* [Assembly Definition Reference のプロパティ](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/class-assembly-definition-reference-importer.md)
* [Assembly Definition ファイル形式](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/file-format.md)
