如何配置GOOGLE_APPLICATION_CREDENTIALS环境变量?.NET谷歌语音API启动报错
在Visual Studio 2017中设置GOOGLE_APPLICATION_CREDENTIALS解决Speech API异常
嗨,我来帮你搞定这个Google Cloud Speech API的凭据问题!你碰到的System.InvalidOperationException就是因为程序找不到默认的身份验证凭据,下面给你几个在Visual Studio 2017里设置GOOGLE_APPLICATION_CREDENTIALS的实用方法,按需选择就行:
方法1:仅针对当前项目设置(最推荐,不影响全局)
这个方法只会让当前项目读取到环境变量,不会改动系统全局设置:
- 右键你的QuickStart项目,选择属性
- 切换到调试标签页
- 在环境变量区域,点击编辑按钮(看起来像三个点的图标)
- 点击新建,输入:
- 名称:
GOOGLE_APPLICATION_CREDENTIALS - 值:你的JSON账户密钥文件的绝对路径,比如
C:\GoogleCredentials\my-speech-api-key.json(如果路径包含空格,记得用引号括起来,比如"C:\Google Credentials\key.json")
- 名称:
- 保存设置,重新启动调试就行
方法2:设置全局系统/用户环境变量(所有项目都能用到)
如果希望这个凭据能被所有需要Google Cloud API的项目使用,可以设置全局环境变量:
- 按下Win+R,输入
sysdm.cpl回车,打开系统属性窗口 - 切换到高级标签页,点击环境变量
- 在用户变量或系统变量区域(选用户变量只对当前账户生效,系统变量对所有账户生效),点击新建
- 输入:
- 变量名:
GOOGLE_APPLICATION_CREDENTIALS - 变量值:JSON密钥文件的绝对路径
- 变量名:
- 点击确定保存所有设置,一定要重启Visual Studio(环境变量需要重新加载才会生效),之后再运行项目就没问题了
方法3:代码中直接指定(临时测试用,不推荐长期使用)
如果只是临时测试,不想改环境变量,可以在代码里直接设置:
在初始化SpeechClient的代码之前,添加这一行:
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", @"C:\path\to\your\credential.json");
注意用@符号避免路径里的斜杠被转义,或者把斜杠写成双斜杠C:\\path\\to\\your\\credential.json
额外注意事项
- 确保JSON密钥文件的路径是绝对路径,相对路径容易因为项目运行目录的问题找不到文件
- 检查文件权限,确保Visual Studio有读取这个JSON文件的权限
- 如果设置后还是报错,先确认路径是否输入正确,有没有拼写错误
内容的提问来源于stack exchange,提问作者Jeankowkow
相关产品推荐
相关产品推荐

