Yo!
When making use of ApplicationPath in a Linux console app, the value it returns is not the one you’d expect.
When running in the editor is all good as expected, but when running in WSL it returns /home/user/.net. Here’s an app meant to be exported and executed on Linux.
It prints the value of ApplicationPath. I came up with a workaround using BaseDirectory from System.Runtime which returns the path of the executable. When running in the IDE that obviously does not work, but using a Switch with IsExported in my app does the trick.
Repro steps :
- Press F10 and build the app, it’ll end up in a
/exportsfolder next to the patch - Fire up WSL
- Install .NET 8 there if have not already :
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel LTS
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
source ~/.bashrc
cdto the directory where your app was exporteddotnet ReproApplicationPathLinux.dll
Expected behavior would be : Application Path and Base Directory should have the same value.
(By the way, the Microsoft tutorial linked in the Gray Book to install dotnet won’t work with recent vvvv versions. For whatever reason they’re suggesting to install the STS channel, which installs .NET7. Using --channel LTS as in the command I wrote above correctly installs .NET8)
Thanks in advance!
seb
repro_applicationpath_linux.zip (3.3 KB)
