# 어셈블리 메타데이터 및 컴파일 세부 정보

> 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가 프로젝트를 위해 빌드한 모든 어셈블리에 대한 정보를 검색해서 가져올 수 있습니다. 여기에는 어셈블리 정의 에셋에 기반하여 생성된 어셈블리도 포함됩니다.

예를 들어 다음 스크립트는 `CompilationPipeline` 클래스를 사용하여 프로젝트의 모든 현재 플레이어 어셈블리를 나열합니다.

```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)
* [어셈블리 정의 프로퍼티](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/class-assembly-definition-importer.md)
* [어셈블리 정의 레퍼런스 프로퍼티](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/class-assembly-definition-reference-importer.md)
* [어셈블리 정의 파일 포맷](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/file-format.md)
