code: def prepare_global(cls, **kwargs):
      super().prepare_global(**kwargs)
      if cls.target_exec_dir is None:
          cls.target_exec_dir = cls._global_tmp_dir / "bin"
          utils.execute_command(
              [
                  "dotnet",
                  "new",
                  "console",
                  "--output",
                  str(cls._global_tmp_dir),
                  "--name",
                  cls.project_name,
                  "--language",
                  "C#",
              ]
          )
  
file_path: m2cgen/tests/e2e/executors/c_sharp.py
imports: from m2cgen.assemblers import get_assembler_cls
  from m2cgen.interpreters import CSharpInterpreter
  from tests import utils
  from tests.e2e.executors.base import BaseExecutor
label_desc: Use image node_id 3 for calling the CSharpExecutor obj's underlying member method code with example usage: obj.prepare_global(cls) without return types