

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon Q 开发者版如何转换 .NET 应用程序
<a name="how-dotnet-transformation-works"></a>

通过以下章节，详细了解 Amazon Q 开发者版执行 .NET 转换的工作原理。

## 分析应用程序并生成转换计划
<a name="analyzing-app-generating-plan"></a>

在转换开始前，Amazon Q 会先在本地编译您的代码，确保代码可编译且转换配置正确。然后，Amazon Q 会将您的代码上传到安全的加密构建环境 AWS，分析您的代码库，并确定移植应用程序所需的更新。

在分析过程中，Amazon Q 会将您的 .NET 解决方案或项目划分为多个代码组。代码组指一个项目及其所有依赖项的集合，它们共同构成一个可编译的代码单元，如动态链接库（DLL）或可执行文件。即便您未选择转换所有项目依赖项，Amazon Q 也会自动识别编译所选项目所需的依赖项，并一并转换，确保转换后的应用程序可编译且能直接投入使用。

代码分析完成后，Amazon Q 会生成一份转换计划，其中概述了拟执行的变更，包括待转换的代码组列表及其依赖项。

## 转换应用程序
<a name="transforming-app"></a>

转换启动后，Amazon Q 会先在安全构建环境中再次编译您的代码，确保代码可远程编译。随后，Amazon Q 开始移植应用程序。转换采用“自下而上”的方式：从最低层级的依赖项开始处理。若 Amazon Q 在移植某个依赖项时遇到问题，会暂停转换并提供错误原因相关信息。

转换包含对应用程序的以下更新：
+ 将代码中过时的 C\$1 版本替换为兼容 Linux 的 C\$1 版本
+ 将 .NET Framework 升级到跨平台 .NET，具体包括：
  + 识别和迭代替包、库和 APIs
  + 升级和更换 NuGet 软件包以及 APIs
  + 迁移到跨平台运行时
  + 配置中间件并更新运行时配置
  + 替换私有或第三方包 
  + 处理 IIS 和 WCF 组件 
  + 调试编译错误
+ 重写代码以实现 Linux 兼容性，包括对已废弃、低效的代码进行重构和重写，以适配现有代码的移植需求 

## 查看转换摘要并接受变更
<a name="reviewing-summary-accepting-changes"></a>

转换完成后，Amazon Q 会提供转换摘要，其中包含有关其对您的应用程序所做的拟议更新的信息，包括更改的文件数量、更新和 APIs 更改的软件包数量。它会标记所有未成功完成的转换（包括受影响的文件或文件片段、尝试编译时遇到的错误）。您还可查看包含编译日志的编译摘要，进一步了解已执行的变更。

转换摘要中还会提供 Linux 移植状态，用于指示应用程序要实现 Linux 兼容性是否需要额外的用户输入。若某个代码组中的任意项目需要您手动处理，可下载一份 Linux 就绪报告，其中包含 Amazon Q 在编译阶段无法解决的与 Windows 特性相关的注意事项。若任一代码组或文件需要人工干预，请查看报告以了解仍需执行的变更类型，以及（如适用）代码更新建议。这些变更必须手动完成，应用程序才能在 Linux 上运行。

在接受变更并对文件进行就地更新前，您可在差异视图中查看 Amazon Q 拟执行的变更。完成文件更新并处理 Linux 就绪报告中的所有事项后，您的应用程序即可在跨平台 .NET 环境中运行。