Code Modernization for .NET 是一款由 Gemini 生成式 AI 模型提供支持的代码生成和应用现代化改造工具。它通过将应用重构为跨平台 .NET 代码,帮助您对依赖于 Windows 的 Microsoft .NET Framework 应用进行现代化改造。
与 .NET Framework 应用不同,跨平台 .NET 应用可在 Linux 上运行,无需 Windows 许可,并可实现容器化等云原生功能。
在本指南中,您将为 Google Cloud项目授予 IAM 角色,创建 Cloud Storage 存储桶,创建 Gemini API 密钥,并在本地计算机上安装 code-modernization-for-dotnet
扩展程序,以将 .NET Framework 应用重构为跨平台 .NET 代码。
准备工作
- 创建 Google 账号(如果您还没有账号)。您可以使用任何电子邮件地址(包括您的工作电子邮件地址)创建 Google 账号。
- 提交 .NET 代码现代化:许可名单申请表单,即可加入许可名单。在此请求获得批准之前,您无法继续执行本页面上的步骤。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Secret Manager, Cloud Storage JSON API, Generative Language API, Cloud Logging, and Compute Engine APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Secret Manager, Cloud Storage JSON API, Generative Language API, Cloud Logging, and Compute Engine APIs.
- 安装 VS Code(如果尚未安装)。
如需为您的 Google Cloud 项目授予 IAM 角色,请前往 IAM 和管理页面。
添加以下 IAM 角色:
用户权限
- Storage Object User (
roles/storage.objectUser
) - Cloud Build Editor (
roles/cloudbuild.builds.editor
)
- Storage Object User (
Cloud Build 服务账号
- Cloud Build 服务账号 (
roles/cloudbuild.builds.builder
) - Secret Manager Viewer (
roles/secretmanager.viewer
) - Logs Writer (
roles/logging.logWriter
) - Storage Object User (
roles/storage.objectUser
)
- Cloud Build 服务账号 (
分配 Storage Object User (
roles/storage.objectUser
) 角色:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:USER_ID" \ --role="roles/storage.objectUser"
分配 Cloud Build Editor (
roles/cloudbuild.builds.editor
) 角色:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:USER_ID" \ --role="roles/cloudbuild.builds.editor"
分配 Cloud Build Service Account (
roles/cloudbuild.builds.builder
) 角色:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT" \ --role="roles/cloudbuild.builds.builder"
分配 Secret Manager Accessor (
roles/secretmanager.secretAccessor
) 角色:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT" \ --role="roles/secretmanager.secretAccessor"
分配 Logs Writer (
roles/logging.logWriter
) 角色:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT" \ --role="roles/logging.logWriter"
分配 Storage Object User (
roles/storage.objectUser
) 角色:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT" \ --role="roles/storage.objectUser"
在 VS Code 中,前往活动栏中的扩展程序。
依次点击 more_horiz 视图和更多操作,然后选择从 VSIX 安装。
找到并选择 VSIX 软件包文件。这会启动在本地计算机上的 VS Code 中安装
Code-modernization-for-dotnet
扩展程序。安装完成后,重启 VS Code。
将
Code Modernization for .NET extension
设置更新为以下内容:- 扩展模式:
LocalGit (experimental)
- Project ID:
PROJECT_ID
- 存储分区名称:
BUCKET_NAME
- 区域:
us-central1
- Gemini API Secret:
gemini-api-key-secret-name
- Google 账号:
GOOGLE_ACCOUNT
- 目标框架:
.NET 8.0
替换以下内容:
PROJECT_ID
:您的 Google Cloud项目的 ID,例如1234567890
。BUCKET_NAME
:Cloud Storage 存储桶的名称。GOOGLE_ACCOUNT
:您的 Google 账号,例如your_full_name@gmail.com
。
- 扩展模式:
如需登录 Google Cloud,请运行以下命令:
gcloud auth login --update-adc
如需触发现代化工作流,请在活动栏中选择源代码控制,点击 more_horiz 更多操作以打开上下文菜单,然后选择 Google Cloud:将 .NET 代码现代化。
授予 Identity and Access Management (IAM) 角色
控制台
gcloud
如需添加所需的 IAM 角色,请运行以下 gcloud
命令:
创建 Cloud Storage 存储桶
如需创建 Cloud Storage 存储桶,请运行以下命令:
gcloud storage buckets create gs://BUCKET_NAME \
--project=PROJECT_ID
创建 Gemini API 密钥并将其保存在 Secret Manager 中
如需创建 Gemini API 密钥,请运行以下命令:
gcloud services api-keys create --project=PROJECT_ID \
--display-name="API Key for .Net Modernization" \
--api-target="service=generativelanguage.googleapis.com" \
--key-id="gemini-api-key"
如需将 Gemini API 密钥保存在 Secret Manager 中,请运行以下命令:
echo -n "(gcloud services api-keys get-key-string gemini-api-key \
--project=PROJECT_ID \
--format="value(keyString)")" | \
gcloud secrets create "gemini-api-key" \
--project=PROJECT_ID \
--data-file=- \
--replication-policy="automatic"
安装和配置扩展程序
.NET 代码现代化:许可名单申请表单获得批准后,您将收到扩展程序(以 .VSIX
文件形式)。如需将扩展程序安装到本地机器,请按以下步骤操作:
触发 build
将您的项目添加到许可名单
如需将您的项目添加到许可名单中,请将您的 Cloud Build 服务账号 ID 通过电子邮件发送至 code-modernization-for-dotnet-discuss@google.com
。
您还可以通过同一电子邮件地址联系支持团队,提出问题或提供反馈。