Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅限V1.11版的Go to download软件包的限制VS代码_Go_Visual Studio Code_Vscode Settings - Fatal编程技术网

仅限V1.11版的Go to download软件包的限制VS代码

仅限V1.11版的Go to download软件包的限制VS代码,go,visual-studio-code,vscode-settings,Go,Visual Studio Code,Vscode Settings,我正在使用Visual Studio代码版本1.33.1作为Go应用程序的IDE。我们希望在我们的应用程序中使用Go版本1.11。但是,看起来我们正在使用的一个或多个依赖项已经下载了Go 1.12的软件包。现在,VS代码无法生成应用程序,出现以下错误: go build golang.org/x/sys/unix:模块需要go 1.12 go build github.com/pelletier/go-toml:模块需要go 1.12 go[1,1] 我尝试重新安装Go 1.11,删除了有问题的

我正在使用Visual Studio代码版本1.33.1作为Go应用程序的IDE。我们希望在我们的应用程序中使用Go版本1.11。但是,看起来我们正在使用的一个或多个依赖项已经下载了Go 1.12的软件包。现在,VS代码无法生成应用程序,出现以下错误:

go build golang.org/x/sys/unix:模块需要go 1.12 go build github.com/pelletier/go-toml:模块需要go 1.12 go[1,1]

我尝试重新安装Go 1.11,删除了有问题的软件包,让它重新安装。无论何时我尝试构建VS代码,下载1.12版本都无法构建。 我希望VS代码不要下载1.12版本的软件包,并将其限制为仅1.11版本

go.mod文件中的go指令现在指示 该模块中的文件使用的语言。它将被设置为 如果没有现有版本,则为当前版本(go 1.12)。如果 模块的指令指定比中的工具链更新的版本 使用时,go命令将尝试构建包,不管如何,并且 只有在构建失败时才会注意到不匹配

go指令的使用发生了变化,这意味着如果使用go 1.12 构建一个模块,从而在go.mod文件中记录go 1.12,您将 尝试使用Go 1.11构建同一模块时出错 通过Go 1.11.3。Go 1.11.4或更高版本可以正常工作,发行版也可以 大于Go 1.11。如果必须使用Go 1.11至1.11.3,则可以 通过将语言版本设置为1.11,使用 Go 1.12 Go工具,通过Go mod edit-Go=1.11



Go1.12中首先引入了一个可能的问题解决方案:
go.mod
动词
go
,用于设置预期的语言版本


更新:


注释:我尝试使用建议的命令:go mod edit-go=1.11i 出现错误:提供了标记但未定义:-转到我手动编辑的目标 将go 1.11添加到所有go.mod文件中的我的模块声明下方,它 不起作用

你的结果是意料之中的。正如我之前解释的和文档中所述,
go.mod
动词
go
首先在Go1.12中引入

比如,预期的结果,

$ go version
go version go1.11.10 linux/amd64
$ go mod edit -go=1.11
flag provided but not defined: -go
usage: go mod edit [editing flags] [go.mod]
Run 'go help mod edit' for details.
$ 

$ go version
go version go1.12.5 linux/amd64
$ go mod edit -go=1.11
$ 

阅读文档:

Go 1.11仅包括对Go模块的初步支持。Go 1.13包括对Go模块的全面官方支持


为什么您希望在Go1.11中,只要有初步支持,一切都能完美运行?

感谢您的快速响应。我尝试使用建议的命令:go mod edit-go=1.11我收到一个错误:提供了标记但未定义:-go我手动编辑以在所有go.mod文件中的模块声明下添加go 1.11,但它不起作用。@user2995358:请参阅我的修订答案。
$ go version
go version go1.11.10 linux/amd64
$ go mod edit -go=1.11
flag provided but not defined: -go
usage: go mod edit [editing flags] [go.mod]
Run 'go help mod edit' for details.
$ 

$ go version
go version go1.12.5 linux/amd64
$ go mod edit -go=1.11
$ 
$ go version
go version go1.11.10 linux/amd64
$ go1.11 help modules

Preliminary module support

Go 1.11 includes preliminary support for Go modules,
including a new module-aware 'go get' command.
We intend to keep revising this support, while preserving compatibility,
until it can be declared official (no longer preliminary),
and then at a later point we may remove support for work
in GOPATH and the old 'go get' command.
$ 


$ go version
go version devel +004fb5cb8d Fri May 3 03:49:11 2019 +0000 linux/amd64
$ go help modules

Module support

Go 1.13 includes official support for Go modules,
including a module-aware 'go get' command.
Module-aware mode is active by default.
$