无法在 VSCode 中更改 solc 编译器版本

Cannot change solc compiler version in VSCode

我在尝试使用 brownie 进行编译时在 VSCode 中遇到此错误。我知道这个错误是由于我的一个文件中的 pragma solidity 版本与我的编译器不同:

PS C:\Users\me\Documents\Code\Blockchain\brownie_fundme> brownie compile
INFO: Could not find files for the given pattern(s).
Brownie v1.18.1 - Python development framework for Ethereum

Compiling contracts...
  Solc version: 0.8.13
  Optimizer: Enabled  Runs: 200
  EVM Version: Istanbul
CompilerError: solc returned the following errors:

ParserError: Source file requires different compiler version (current compiler is 0.8.13+commit.abaa5c0e.Windows.msvc) - note that nightly builds are considered to be strictly less than the released version
 --> C:/Users/me/.brownie/packages/smartcontractkit/chainlink-brownie-contracts@1.1.1/contracts/src/v0.6/vendor/SafeMathChainlink.sol:2:1:
  |
2 | pragma solidity ^0.6.0;
  | ^^^^^^^^^^^^^^^^^^^^^^^

我已尝试使用 Juan Blanco 的 'Solidity' VSCode 扩展将我的编译器版本更改为“更改 global/workspace 编译器版本(远程) ",选择版本 0.6.0。 (我确认这会将 "solidity.compileUsingRemoteVersion": "v0.6.0+commit.6c089d02" 添加到我的 settings.json)。

但是当我再次 运行 brownie compile 时,我仍然得到同样的错误:

"...ParserError: 源文件需要不同的编译器版本(当前编译器是 0.8.13+commit.abaa5c0e.Windows.msvc)。 .”,显示我的编译器版本没有变化。

(我将默认编译器设置为远程,并且在进行这些更改后我还尝试重新启动所有打开的终端。)

我用pip安装了solcx,在我的“C:/Users/me”目录下也有一个.solcx文件夹,里面有一个文件夹“solc-v0.8.13”。我尝试删除该文件夹并再次编译,但布朗尼自动下载了相同的 v0.8.13。

我对如何更改全局或工作区编译器版本感到困惑。 solc 的版本是否会被我的 VSCode 设置以外的其他地方覆盖?

将以下 brownie-config.yaml 文件添加到您的项目中:

compiler:
  solc:
    version: 0.6.12

当您 compile 时,brownie 将从配置中下载 solc 版本。