> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 방법: Visual Studio를 사용하여 게임 리소스 파일 배포하기

> 방법: Visual Studio를 사용하여 게임 리소스 파일 배포하기

Visual Studio를 사용하여 XBOX One Software Development Kit 프로젝트를 배포하거나 실행하면 `Gaming.Xbox.XboxOne.x64\Layout\Image\Loose` 프로젝트 하위 디렉터리의 내용이 콘솔에 배포됩니다. XBOX용 Microsoft Game Development Kit 프로젝트를 빌드하면 컴파일된 애플리케이션 파일이 자동으로 이 디렉터리에 복사되어 배포됩니다. 텍스처와 셰이더 같은 추가 게임 리소스를 배포하려면 해당 파일도 XBOX One XDK 프로젝트의 `Loose` 하위 디렉터리에 복사해야 합니다.

`Loose` 디렉터리는 프로젝트 디렉터리를 기준으로 하는 상대 경로입니다. 예를 들어 프로젝트가 c:\MyProjects\D3D12Game1\D3D12Game1 디렉터리에 저장된 경우 `Loose` 디렉터리는 다음 위치에 있는 프로젝트의 하위 디렉터리입니다: c:\MyProjects\D3D12Game1\D3D12Game1\Gaming.Xbox.XboxOne.x64\Layout\Image\Loose.

`Loose` 디렉터리에 수동으로 또는 빌드 프로세스의 일부로 배치된 파일은 앱과 함께 배포됩니다.

`Loose` 디렉터리의 파일은 `Loose` 디렉터리에서 갖는 것과 동일한 상대 경로로 배포됩니다. 예를 들어 Loose\Models의 파일은 콘솔의 Models 하위 디렉터리에 배포됩니다.

`Loose` 디렉터리의 파일은 프로젝트에 콘텐츠로 존재하지 않는 한(아래 프로젝트에 파일 추가 항목 참조) 프로젝트를 빌드하거나 정리해도 삭제되지 않습니다.

Gaming.Xbox.XboxOne.x64\Layout\Image\Loose에 파일을 추가하는 세 가지 주요 방법이 있습니다.

* [수동으로 파일 복사](#ID4ESC)
* [빌드 후 이벤트로 복사](#ID4EXD)
* [프로젝트에 파일 추가](#ID4E6F)

<a id="ID4ESC" />

## 수동으로 파일 복사

`Loose` 디렉터리에 파일을 수동으로 복사하면 해당 파일이 디렉터리에 남아 있는 한 프로젝트와 함께 배포됩니다.

#### 파일을 수동으로 추가하려면

* **xcopy**를 사용하여 프로젝트 디렉터리에서 \Layout\Image\Loose 디렉터리로 파일을 복사합니다.

이 방법은 빠르고 간편하지만 빌드 랩이나 모든 필수 파일을 복사하지 않는 개발자와 작업할 경우 문제가 발생할 수 있습니다.

`Loose` 디렉터리에 수동으로 복사된 파일은 디렉터리에 있는 한 계속 배포됩니다. 수동으로 복사된 파일은 프로젝트를 빌드하거나 정리해도 삭제되지 않습니다. 파일이 배포되지 않도록 하려면 `Loose` 디렉터리에서 삭제해야 합니다.

<a id="ID4EXD" />

## 빌드 후 이벤트로 복사

파일을 복사하도록 Visual Studio에서 빌드 후 이벤트를 만들면 프로젝트를 빌드할 때마다 `Loose` 디렉터리로 파일이 복사됩니다. 또한 빌드 후 이벤트는 각각 프로젝트 디렉터리와 레이아웃 디렉터리를 식별하는 Visual Studio 속성인 `$(ProjectDir)`과 `$(LayoutDir)`을 사용할 수 있습니다.

예를 들어, 다음 명령줄은 MyPicture.bmp 파일을 프로젝트 디렉터리에서 Layout 디렉터리의 \Image\Loose로 복사한 뒤 배포 과정에서 콘솔로 복사되도록 합니다.

```text theme={null}
xcopy $(ProjectDir)MyPicture.bmp $(LayoutDir)Image\Loose  
```

#### 빌드 후 이벤트를 사용하여 파일을 추가하려면

1. 프로젝트의 **속성 페이지** 대화 상자를 엽니다. **빌드 이벤트**에서 **빌드 후 이벤트** 페이지를 선택합니다.

**그림 1.   빌드 후 이벤트에 대한 명령줄을 지정합니다.**

<img src="https://mintcdn.com/microsoft-4404708b/6TXzXmujKayly5Sf/images/gdk/tools/property_page_post_build_event.png?fit=max&auto=format&n=6TXzXmujKayly5Sf&q=85&s=cfb00340e22c3878087e359b539a02ff" alt="Direct3DGame1 속성 페이지" width="640" height="454" data-path="images/gdk/tools/property_page_post_build_event.png" />

1. **명령줄**에 **xcopy**를 사용하여 프로젝트 디렉터리에서 Layout\Image\Loose 디렉터리로 파일을 복사하는 명령줄을 입력합니다.

예를 들면 **xcopy**\*\*$(ProjectDir)***file-name***$(LayoutDir)Image\Loose\*\*이며, 여기서 \_file-name\_은 복사할 파일의 이름과 일치합니다.

<Note>
  빌드 후 이벤트로 `Loose` 디렉터리에 복사된 파일은 프로젝트에서 빌드 후 이벤트가 제거되어도 디렉터리에 있는 한 계속 배포됩니다. 빌드 후 이벤트로 `Loose` 디렉터리에 복사된 파일은 프로젝트를 빌드하거나 정리해도 삭제되지 않습니다. 파일이 배포되지 않도록 하려면 `Loose` 디렉터리에서도 삭제해야 합니다.
</Note>

<a id="ID4E6F" />

## 프로젝트에 파일 추가

파일을 리소스로 프로젝트에 추가할 수도 있습니다. 프로젝트 리소스는 자동으로 `Loose` 디렉터리에 복사되어 프로젝트와 함께 배포됩니다.

#### 파일을 프로젝트 리소스로 추가하려면

1. 프로젝트를 마우스 오른쪽 버튼으로 클릭한 다음 **추가, 기존 항목**을 선택합니다.
2. 프로젝트에 추가할 항목을 선택합니다.
3. 리소스의 속성 창을 열고 **콘텐츠** 속성이 **예**로 설정되어 있는지 확인합니다.

이 방식은 파일을 실행 파일 같은 다른 프로젝트 파일과 정확히 동일하게 취급합니다. 파일은 프로젝트를 빌드하거나 정리할 때 삭제되며 자동으로 `Loose` 디렉터리에 복사되어 프로젝트와 함께 배포됩니다. 프로젝트에서 파일을 제거하면 `Loose` 디렉터리에서도 제거됩니다.

<a id="ID4EEH" />

## 참고 항목

[XBOX One 배포](/home/setup-install/concepts/deployment)


## Related topics

- [XBOX 개발용 Visual Studio 속성](/ko/tools/tools-console/visualstudio/durango-property-pages.md)
- [콘솔 개발을 위한 Visual Studio](/ko/tools/tools-console/visualstudio/visualstudio.md)
- [Visual Studio](/ko/tools/tools-console/visualstudio/index.md)
- [Visual Studio (목차)](/ko/tools/tools-pc/visualstudio/gr-visualstudio-toc.md)
- [PowerShell/API를 사용하여 빌드 배포](/ko/services/playfab/multiplayer/servers/deploy-using-powershell-api.md)
