本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Q 开发者版如何转换 .NET 应用程序
通过以下章节,详细了解 Amazon Q 开发者版执行 .NET 转换的工作原理。
分析应用程序并生成转换计划
在转换开始前,Amazon Q 会先在本地编译您的代码,确保代码可编译且转换配置正确。然后,Amazon Q 会将您的代码上传到安全的加密构建环境 AWS,分析您的代码库,并确定移植应用程序所需的更新。
在分析过程中,Amazon Q 会将您的 .NET 解决方案或项目划分为多个代码组。代码组指一个项目及其所有依赖项的集合,它们共同构成一个可编译的代码单元,如动态链接库(DLL)或可执行文件。即便您未选择转换所有项目依赖项,Amazon Q 也会自动识别编译所选项目所需的依赖项,并一并转换,确保转换后的应用程序可编译且能直接投入使用。
代码分析完成后,Amazon Q 会生成一份转换计划,其中概述了拟执行的变更,包括待转换的代码组列表及其依赖项。
转换应用程序
转换启动后,Amazon Q 会先在安全构建环境中再次编译您的代码,确保代码可远程编译。随后,Amazon Q 开始移植应用程序。转换采用“自下而上”的方式:从最低层级的依赖项开始处理。若 Amazon Q 在移植某个依赖项时遇到问题,会暂停转换并提供错误原因相关信息。
转换包含对应用程序的以下更新:
-
将代码中过时的 C# 版本替换为兼容 Linux 的 C# 版本
-
将 .NET Framework 升级到跨平台 .NET,具体包括:
-
识别和迭代替包、库和 APIs
-
升级和更换 NuGet 软件包以及 APIs
-
迁移到跨平台运行时
-
配置中间件并更新运行时配置
-
替换私有或第三方包
-
处理 IIS 和 WCF 组件
-
调试编译错误
-
-
重写代码以实现 Linux 兼容性,包括对已废弃、低效的代码进行重构和重写,以适配现有代码的移植需求
查看转换摘要并接受变更
转换完成后,Amazon Q 会提供转换摘要,其中包含有关其对您的应用程序所做的拟议更新的信息,包括更改的文件数量、更新和 APIs 更改的软件包数量。它会标记所有未成功完成的转换(包括受影响的文件或文件片段、尝试编译时遇到的错误)。您还可查看包含编译日志的编译摘要,进一步了解已执行的变更。
转换摘要中还会提供 Linux 移植状态,用于指示应用程序要实现 Linux 兼容性是否需要额外的用户输入。若某个代码组中的任意项目需要您手动处理,可下载一份 Linux 就绪报告,其中包含 Amazon Q 在编译阶段无法解决的与 Windows 特性相关的注意事项。若任一代码组或文件需要人工干预,请查看报告以了解仍需执行的变更类型,以及(如适用)代码更新建议。这些变更必须手动完成,应用程序才能在 Linux 上运行。
在接受变更并对文件进行就地更新前,您可在差异视图中查看 Amazon Q 拟执行的变更。完成文件更新并处理 Linux 就绪报告中的所有事项后,您的应用程序即可在跨平台 .NET 环境中运行。