> ## 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 软件开发工具包项目时，项目子目录 `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` 目录的文件不会在生成或清理项目时被删除。要阻止这些文件被部署，必须将其从 `Loose` 目录中删除。

<a id="ID4EXD" />

## 通过生成后事件复制

在 Visual Studio 中创建生成后事件来复制文件，可让文件在每次生成项目时都被复制到 `Loose` 目录。此外，生成后事件可以使用 `$(ProjectDir)` 和 `$(LayoutDir)` 这两个 Visual Studio 属性，它们分别标识项目目录和布局目录。

例如，以下命令行会将文件 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 属性](/zh-CN/tools/tools-console/visualstudio/durango-property-pages.md)
- [面向主机开发的 Visual Studio](/zh-CN/tools/tools-console/visualstudio/visualstudio.md)
- [Visual Studio](/zh-CN/tools/tools-console/visualstudio/index.md)
- [使用 Visual Studio 调试 PC 项目](/zh-CN/tools/tools-pc/visualstudio/gr-vs-debugging-with-visualstudio.md)
- [在 Visual Studio 中远程调试 Windows 设备上的 PC 项目](/zh-CN/tools/tools-pc/visualstudio/gr-vs-debugging-with-visualstudio-remote-windows.md)
