I had a bit of trouble getting the .desktop file to work, so I'm posting my solution here in case others have the same issue.
In particular, running either the desktop file or the application directly would seemingly do nothing, while running them through the terminal would work fine. I eventually traced it down to nemo (my file viewer) not knowing the environment variables that linked to Dot Net. The solution was to put them in the .desktop file manually.
Distro/Kernel Release: Linux Mint 22.1 Cinnamon / 6.8.0-55-generic
Vintage Story Version: 1.20.7
Mono/.Net version: Microsoft.NETCore.App 7.0.20
Graphics driver: nvidia-driver-550
Client/Server: Client works, haven't tested server yet.
Installation Method Used: install.sh
Hacks:
Ran the dot net install script as ./dotnet-install.sh --runtime dotnet --channel 7.0
Created the following .desktop file to launch the game with:
#!/usr/bin/xdg-open
[Desktop Entry]
Name=Vintage Story 1.20.7
GenericName=Sandbox Game
Exec=env DOTNET_ROOT=/home/yourname/.dotnet /home/yourname/.local/share/vintagestory/run.sh
Terminal=false
Type=Application
StartupNotify=false
Categories=Game;
Path=/home/yourname/.local/share/vintagestory
Icon=/home/yourname/.local/share/vintagestory/assets/gameicon.xpm
Thanks to this Stack Overflow post for pointing me in the right direction.