> ## 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 中造成下列部署錯誤：
`Files for Configuration='Debug' are either not built, or not completely copied to the layout directory. Build required to proceed.`
請依下列方式解決此錯誤。

### 背景

Visual Studio 部署會執行一組檢查，以確保您選取用於建置與部署的 Visual Studio 組態 (例如偵錯或發行)，就是實際從 `Gaming.Xbox.XboxOne.x64\Layout\Image\Loose` 資料夾部署的組態。這些檢查可解決因部署部分建置之組態所造成的問題——嘗試部署部分建置的組態可能會導致難以診斷的應用程式註冊問題或當機。

當您從一個建置組態切換至另一個建置組態，然後在未重建的情況下嘗試部署時，這尤其容易成為問題。

雖然這些檢查對於完全仰賴 XBOX 專案系統來確保一切正確更新的人有極大幫助，但這些檢查可能會在自訂建置環境中造成問題。本主題說明如何診斷與修正這些問題。如果您遇到不易解決且需要協助的問題，請與您的開發人員帳戶經理 (DAM) 聯絡。

這些檢查是透過建置系統在 `Gaming.Xbox.XboxOne.x64\Layout\Contributors` 目錄中產生的 XML 檔案來管理。如果 `IsolatedConfiguration=No`，所有組態會共用一個檔案。如果 `IsolatedConfiguration=Yes`，每個組態各有一個檔案。

每個 XML 檔案會列出特定組態應位於 `Gaming.Xbox.XboxOne.x64\Layout\Image\Loose` 目錄中的檔案，以及該檔案的來源。以下是範例。

```xml theme={null}
<Contributor ComponentSource="c:\scratch\d\gdk\samples\setfastresources_06_2014\graphics\setfastresources\setfastresources140.vcxproj_release">
  <Configuration Name="Release">
    <File Source="C:\GDK\Samples\SetFastResources_06_2014\graphics\SetFastResources\Gaming.Xbox.XboxOne.x64\Release140\bin\file.txt">C:\GDK\Samples\SetFastResources_06_2014\graphics\SetFastResources\Gaming.Xbox.XboxOne.x64\Layout\Image\Loose\file.txt</File>
    ...
    <File Source="C:\GDK\Samples\SetFastResources_06_2014\graphics\SetFastResources\Gaming.Xbox.XboxOne.x64\Release140\bin\Media\Textures\ATGStoreLogo.png">C:\GDK\Samples\SetFastResources_06_2014\graphics\SetFastResources\Gaming.Xbox.XboxOne.x64\Layout\Image\Loose\Media\Textures\ATGStoreLogo.png</File>
  </Configuration>
</Contributor>  
```

如果檔案不存在或需要更新，就會從 **Source** 複製到 `Gaming.Xbox.XboxOne.x64\Layout\Image\Loose` 資料夾。如果 **Source** 檔案不存在，或 **Configuration** 檔案為空白 (因為您使用自訂建置流程進行建置)，部署就會失敗，並出現類似下列的錯誤。

`Expected file in OutputDir 'missing.txt' does not exist.`

`Files for Configuration='Debug' are either not built,
          or not completely copied to the layout directory.
          Build required to proceed.
        `

### 診斷問題

此問題通常是由下表所示的其中一種情況所造成。

| 可能原因 | 修正方式 |
| - | - |
| 開發人員切換了組態，且尚未建置新的組態。 | 重建，然後再次部署。 |
| 要部署的組態缺少部分檔案。 | 修正建置系統，以確保會建置缺少的檔案。錯誤訊息應會指出缺少的內容。如果沒有，請檢查 Contributors 組態檔中所定義的 *Source* 與 *Target* 參數。 |
| 中繼目錄 (<b>IntDir</b>) 與輸出目錄 (<b>OutDir</b>) 使用相同的位置。 | 為 <b>IntDir</b> 與 <b>OutDir</b> 使用不同的位置。 |
| 開發人員變更了 *IsolatedConfiguration* 建置參數的值 (<b>No</b> 變為 <b>Yes</b>，或 <b>Yes</b> 變為 <b>No</b>)。 | 刪除 <code>Gaming.Xbox.XboxOne.x64\Layout</code> 資料夾，然後重建專案。 |
| 開發人員使用的自訂建置流程不會更新 Contributors 組態檔。 | 更新自訂建置流程，以產生有效的 Configurations 檔案。或者，您可以選擇不使用其他部署組態檢查。如需詳細資訊，請參閱下列「選擇不使用其他檢查」一節。 |

### 選擇不使用其他檢查

您可以使用 **DisableConfigurationRefresh** 屬性選擇不使用這些其他檢查。

> <img src="https://mintcdn.com/microsoft-4404708b/z-rLYkO3Ax6HPtgm/images/gdk/tools/caution.gif?s=c35e42b8bb5ca0bdac12d10f6c467c29" alt="caution" width="11" height="11" data-path="images/gdk/tools/caution.gif" />**注意：** 使用 **DisableConfigurationRefresh** 屬性時請小心。關閉這些檢查表示 Visual Studio 建置系統不會在開始部署之前驗證 `Image\Loose` 資料夾的內容是否正確。您可能會遇到這些檢查原本旨在防止的那類難以診斷的問題。使用此屬性之前，請確定您的建置流程正確，且在組態之間切換不會使 `Image\Loose` 資料夾處於不正確的狀態。

若要新增 **DisableConfigurationRefresh** 屬性，請在文字編輯器中開啟專案檔。在 **Globals** 屬性群組中，新增 `<DisableConfigurationRefresh>true</DisableConfigurationRefresh>` 項目。以下是範例。

```xml theme={null}
<PropertyGroup Label="Globals">
  <RootNamespace>SetFastResources</RootNamespace>
  <VCTargetsPath Condition="'$(VCTargetsPath14)' != '' and '$(VSVersion)' == '' and '$(VisualStudioVersion)' == ''">$(VCTargetsPath14)</VCTargetsPath>
  <DefaultLanguage>en-US</DefaultLanguage>
  <ProjectGuid>{25D7897B-1E8D-439B-936F-BB68D477B790}</ProjectGuid>
  <Keyword>Win32Proj</Keyword>
  <ProjectName>SetFastResources140</ProjectName>

  <!-- Disable Deployment configuration checks.  -->
  <DisableConfigurationRefresh>true</DisableConfigurationRefresh>

</PropertyGroup>  
```

<a id="ID4EVG" />

## 收集遊戲部署與啟動失敗的 XTF 記錄

以下是在開發電腦與開發套件上為部署流程啟用詳細資訊記錄的一些步驟。

1. 在開發電腦上開啟 GDK 命令提示字元。
2. 執行下列命令以連線至主機。

```
      xbconnect.exe <console IP>  
```

1. 執行下列命令以在主機上啟用詳細資訊記錄。

```
      xbconfig.exe ToolsLogLevel=Verbose  
```

> \[!NOTE]
> 您可以忽略表示需要重新開機主機才能使變更生效的文字。

1. 設定下列環境變數，以在開發電腦上啟用詳細資訊記錄。

```
      set XTF_LOG_LEVEL=5  
```

```
      set XTF_LOG_FILE=<path on your development PC to create the log file>  
```

您可以執行下列命令來停用 XTF 記錄。

* `Xbconfig.exe ToolsLogLevel=Quiet`
* `set XTF_LOG_LEVEL=`
* `set XTF_LOG_FILE=`

下列路徑可能包含有助於偵錯的資訊。

* 主機上的路徑 \\\<console IP>\SystemScratch\xtflogs
* 您用於 XTF\_LOG\_FILE 的 \<*開發電腦上用於建立記錄檔的路徑*>

## 另請參閱

[將遊戲部署至 XBOX 開發套件](/zh-TW/home/setup-install/concepts/deployment)


## Related topics

- [Visual Studio](/zh-TW/tools/tools-console/visualstudio/index.md)
- [用於主機開發的 Visual Studio](/zh-TW/tools/tools-console/visualstudio/visualstudio.md)
- [Visual Studio 中的分析導引最佳化](/zh-TW/tools/tools-console/pgo/pgo_full.md)
- [操作說明：使用 Visual Studio 部署遊戲資源檔](/zh-TW/tools/tools-console/visualstudio/how-to-deploy-resources.md)
- [XBOX Gaming Project Control](/zh-TW/tools/tools-console/visualstudio/xbox-gaming-project-control.md)
