这是我的 Go 项目。.├── cmd│ └── main│ └── main.go├── config│ └── config.go│├── config.ini通常它是可执行的 go run 和 go build。但在测试和调试期间无法执行。(去测试 ./cmd/main 和 vscode 调试),错误如下config.ini: no such file or directory 我尝试将路径更改为 ../../config.ini。它工作正常,但是无法执行 go run 和 build。如何在所有环境中设置可执行文件的路径?配置/config.gopackage configimport ( "log" "os" "gopkg.in/ini.v1")type ConfigList struct { FgiAPIKey string FgiAPIHost string Port int JwtAccess string JwtRefresh string}var Config ConfigListfunc init() { cfg, err := ini.Load("config.ini") if err != nil { log.Printf("Failed to read file: %v", err) os.Exit(1) } Config = ConfigList{ FgiAPIKey: cfg.Section("fgi").Key("api_key").String(), FgiAPIHost: cfg.Section("fgi").Key("api_host").String(), Port: cfg.Section("web").Key("port").MustInt(), JwtAccess: cfg.Section("secret").Key("jwt_access").String(), JwtRefresh: cfg.Section("secret").Key("jwt_refresh").String(), }}
1 回答
森栏
TA贡献1810条经验 获得超5个赞
问题是您使用的不同工具在不同的地方(或从不同的地方运行二进制文件)生成二进制文件。代码中的路径config.ini
指定为相对于进程的当前工作目录。如果您想要非侵入式解决方案,您需要更改您的工作流程(在其中构建和运行主二进制文件、调试器或进行测试),或者您可以实现一些回退机制或环境变量,以覆盖配置文件的默认路径。
在 VSCode 中,配置中应该有允许您设置工作目录的cwd
变量。launch.json
您应该能够设置cwd: "${workspaceFolder}"
并且应该像从存储库的根目录运行命令一样工作。
有关变量参考,请参阅https://code.visualstudio.com/docs/editor/variables-reference。
- 1 回答
- 0 关注
- 157 浏览
添加回答
举报
0/150
提交
取消