ポイントは --spawn_strategy=local
オプション。Bazel は OS の Sandbox 機構を利用してコンパイラ等のビルドプロセスを起動する。Bazel で C# をビルドするための rules_dotnet は Mono コンパイラ (mcs) を Sandbox 内にセットアップするとこまではやってくれないので (?) --spawn_strategy=local
オプションを付けずに bazel build
すると mcs
が見つからなくてコンパイルエラーになる。つけるとシステムにインストールされてる mono が使われる。