這是我的 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 關注
- 170 瀏覽
添加回答
舉報
0/150
提交
取消