在自定义目录中安装了“Microsoft VS code”,现在我无法使用 Go 支持

在自定义目录中安装了“Microsoft VS code”,现在我无法使用 Go 支持

我在 Windows 10 系统的另一个分区(驱动器 D)中安装了 Microsoft VS Code。我更喜欢将 Microsoft VS Code 放在远离 Windows 的另一个分区中。

我的目标是安装 Microsoft 的 GO 扩展。扩展的链接在这里。

单击此处访问 go 扩展存储库的源代码。

当我尝试通过 Microsoft VS Code 应用程序中的扩展对话框安装 GO 扩展时出现以下错误。

错误:

无法运行“go env”来找到 GOPATH,因为在 GOROOT(未定义)或 PATH 中都找不到“go”二进制文件(

C:\Windows\system32;

C:\Windows;

C:\Windows\System32\Wbem;

C:\Windows\System32\WindowsPowerShell\v1.0;

C:\Windows\System32\OpenSSH;

此处有 GFX 卡驱动程序目录

此处有 GFX 卡驱动程序目录

C:\用户\我的用户名遗漏了 \应用程序数据\本地\微软\WindowsApps;

我怀疑原因是我将 Microsoft VS Code 安装在了另一个分区。我在问题的开头也提到了这一点。我在下面解释了我找到解决方案所采取的步骤:

首先,我检查了 go 资源的位置。看来我的资源放在了正确的文件夹中(我的安装文件夹)。

D:\Program Files\Microsoft VS Code\resources\app\extensions\go

然后我尝试通过按以下方式执行简单的命令ctrl+shift+p然后输入 go:Current GOPATH。错误消息

未找到命令 go.goroot

然后我想测试一下我是否可以运行一个基本的 go 文件。我搜索了一个简单的例子,然后找到了这个网站。。因此,我创建了一个项目文件夹,并在文件夹中添加了文件 Hello.goD:\VS_Projects\GO_Helloworld然后我把hello world程序放进去了,程序如下图所示

package main


import "fmt"

func main() {
    fmt.Println("hello world")
}

在 Microsoft vs Code Powershell 终端中,我检查终端是否位于正确的文件夹中。它显示“PS D:\VS_Projects\GO_Helloworld>”,所以应该是正确的。我运行以下命令:

go run Hello.go

终端中显示以下错误:

on、脚本文件或可运行程序。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试

位于行:1 字符:1

  • 运行 Hello.go
  • ~~
    • CategoryInfo:ObjectNotFound:(go:String)[],CommandNotFoundException
    • 完全合格错误标识:CommandNotFoundException

我目前正在考虑采取以下步骤'ramya-rao-a''AndreiD'这个 GitHub 帖子在 powershell 终端中。

在 stackoverflow 上,有人私下建议我将这个问题发布在超级用户上. 所以我这么做了 :D。

如果您能解答我的问题,请告诉我。此致!

答案1

仅安装 Microsoft 的 Go Extension 不足以让您运行/调试代码。您需要扩展所依赖的其他实用程序和工具才能正常运行。在此处查看它们:https://github.com/Microsoft/vscode-go/wiki/Go-tools-that-the-Go-extension-depends-on

编辑:您还需要一个 Go 编译器 - 这是最重要的部分。这不包含在 Microsoft 的 Go 扩展中。https://golang.org/doc/install

原始发帖者说这对他们有用:

由 DeliciousCookiedev 编辑(或附件):

我偶然成功安装了所需的一些实用程序和工具。我只是想手动练习使用 go 编译器并将 vscode 用作独立代码编辑器。以下步骤导致在 vscode 中成功运行 powershell 终端的 go。

  1. 在我的 d 盘上安装了 golang 编译器
  2. 将环境变量 GOPATH 设置为D:/custom-folder
  3. 创建了一个custom-folder/src/hello名为项目工作区文件夹以启动测试过程
  4. 添加了一个你好世界脚本创建一个新文件‘hello.go’
  5. 以管理员身份打开cmd.exe
  6. 执行命令D:然后cd custom-folder/src/hello在 cmd.exe 中
  7. 执行命令go build然后hello。终端显示:'hello world'
  8. 启动 vscode,然后通过任务窗口打开我刚刚测试的同一个 hello 项目

    ‘文件 > 打开文件夹(快捷键 ctrl+k 或 ctrl+o)’

  9. 然后我点击了文件 hello.go,右下角的对话框显示了一条消息。它说了类似这样的话“缺少必需的 go 扩展。您想现在安装它们吗?”
  10. 我点击了“确定”
  11. 然后安装了工具“ gocode,gopkgs,go-outline,gocode-gomod,godef,goreturns,golint”
  12. 然后我使用命令在 vscode 中的 powershell 终端成功测试了我的 hello.go 文件go run hello.go

答案2

这很有帮助,因为 choco 是你的包管理器:

尝试使用 choco 安装 go 编译器:

choco install golang 

# if you have proxy registry
# choco install golang --source http://nexus.local:8081/repository/nuget-choco


现在返回 Visual Code,创建任何文件 main.go ,保存它,然后重新启动 Visual code。

Visual Code 将提供安装所有 go 工具的选项,单击“安装全部...”您将在安装日志中看到以下内容:

Tools environment: GOPATH=C:\Users\yourusername\go
Installing 9 tools at C:\Users\yourusername\go\bin in module mode.
  gopkgs
  go-outline
  gotests
  gomodifytags
  impl
  goplay
  dlv
  golint
  gopls

Installing github.com/uudashr/gopkgs/v2/cmd/gopkgs (C:\Users\yourusername\go\bin\gopkgs.exe) SUCCEEDED
Installing github.com/ramya-rao-a/go-outline (C:\Users\yourusername\go\bin\go-outline.exe) SUCCEEDED

All tools successfully installed. You are ready to Go :).
Installing github.com/ramya-rao-a/go-outline (C:\Users\yourusername\go\bin\go-outline.exe) SUCCEEDED
Installing github.com/cweill/gotests/... (C:\Users\yourusername\go\bin\gotests.exe) SUCCEEDED
Installing github.com/fatih/gomodifytags (C:\Users\yourusername\go\bin\gomodifytags.exe) SUCCEEDED
Installing github.com/josharian/impl (C:\Users\yourusername\go\bin\impl.exe) SUCCEEDED
Installing github.com/haya14busa/goplay/cmd/goplay (C:\Users\yourusername\go\bin\goplay.exe) SUCCEEDED
Installing github.com/go-delve/delve/cmd/dlv (C:\Users\yourusername\go\bin\dlv.exe) SUCCEEDED
Installing golang.org/x/lint/golint (C:\Users\yourusername\go\bin\golint.exe) SUCCEEDED
Installing golang.org/x/tools/gopls (C:\Users\yourusername\go\bin\gopls.exe) SUCCEEDED

All tools successfully installed. You are ready to Go :).

相关内容