Problem
Linux environment variables declared in ~/.bashrc aren't pulled into VSCode when it starts.
Specifically, I declared a variable export foo\'bar'= in ~/.bashrc. I launch VSCode using its desktop file (via the rofi launcher). Then when I execute a dotnet build process I find that the foo variable is unset in any of the shells that VSCode launches.
Solution
This issue arises because of how VSCode initializes in different contexts. If I launched VSCode from an interactive shell, I would have the variable I exported in ~/.bashrc. VSCode does make some effort to bring in environment variables from its host system [0]. For some reason this doesn't work on my computer.
My solution was to modify VSCode's default .desktop file to initialize from an interactive shell, like so:
[Desktop Entry]
...
Exec=/bin/bash -ic "/usr/bin/code --unity-launch %F"
...
The -i command line flag tells bash to launch an interactive shell. -c tells bash to evaluate the following string as a command.
This is a kludge, but it works rather seamlessly.