You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Visual Studio User Secrets一键导出至生产环境变量或Azure Key Vault?

一键导出User Secrets到Azure环境的方案

我之前在ASP.NET Core项目里也碰到过这个痛点——开发时User Secrets用得爽,到生产环境手动录配置简直要命。分享几个我亲测好用的PowerShell脚本和方法,帮你一键搞定导出:

方案1:导出到Azure App Service环境变量

这个脚本会读取你的User Secrets文件,自动把键值对转换成Azure App Service支持的格式(用双下划线代替冒号处理层级),然后批量设置到指定的Web App:

# 前提:已安装Azure CLI并登录(az login),且切换到目标订阅(az account set --subscription <订阅ID>)

# 1. 替换为你的User Secrets路径(Visual Studio右键项目→管理用户机密,打开的文件路径就是这个)
$secretsPath = "$env:APPDATA\Microsoft\UserSecrets\<你的UserSecretsID>\secrets.json"

# 2. 替换为你的Azure Web App名称和资源组
$webAppName = "你的WebApp名称"
$resourceGroupName = "你的资源组名称"

# 3. 读取并解析secrets.json
$secrets = Get-Content $secretsPath | ConvertFrom-Json

# 4. 转换为Azure App Service的配置格式(层级用双下划线代替冒号)
$appSettings = @()
foreach ($prop in $secrets.PSObject.Properties) {
    $key = $prop.Name.Replace(":", "__")
    $value = $prop.Value
    $appSettings += "$key=$value"
}

# 5. 批量设置到Web App
az webapp config appsettings set --name $webAppName --resource-group $resourceGroupName --settings $appSettings

注意点:

  • 如果你的User Secrets里有嵌套JSON结构(比如"ApiSettings": {"Url": "...", "Key": "..."}),可以加个递归函数扁平化处理,把ApiSettings:Url转换成ApiSettings__Url再导入。

方案2:导出到Azure Key Vault

如果生产环境用Key Vault管理机密,这个脚本可以把User Secrets一键导入到指定的Key Vault:

# 前提:已安装Azure CLI并登录,且拥有Key Vault的写入权限

# 1. 替换为你的User Secrets路径
$secretsPath = "$env:APPDATA\Microsoft\UserSecrets\<你的UserSecretsID>\secrets.json"

# 2. 替换为你的Key Vault名称
$keyVaultName = "你的KeyVault名称"

# 3. 读取并解析secrets.json
$secrets = Get-Content $secretsPath | ConvertFrom-Json

# 4. 遍历每个机密导入到Key Vault
foreach ($prop in $secrets.PSObject.Properties) {
    $secretName = $prop.Name.Replace(":", "-")  # Key Vault不允许冒号,换成连字符或下划线
    $secretValue = $prop.Value
    az keyvault secret set --vault-name $keyVaultName --name $secretName --value "$secretValue"
}

注意点:

  • Key Vault的机密名称不能包含特殊字符,所以把冒号换成连字符/下划线是安全选择;嵌套结构同样需要扁平化后再命名。

有没有更简便的命令行工具?

目前官方没有直接的dotnet命令来导出User Secrets到Azure,但上面的PowerShell脚本已经足够简洁,你可以把脚本保存为.ps1文件,每次修改参数即可运行。如果经常需要操作,还能把脚本封装成函数放到PowerShell配置文件里,用起来更顺手。

内容的提问来源于stack exchange,提问作者Mike-E

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 17:52:45