dotnet publish sets Assembly path in temp directory instead of exe directory

I build a dotnet 3.1 application that needs a configuration file (appSettings.json) in its running directory.

With a simple build, it behaves well, all these paths correspond to the directory where is the executable :

  • Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
  • Path.GetDirectoryName(Assembly.GetCallingAssembly().Location)
  • AppDomain.CurrentDomain.BaseDirectory
  • Goes to C:\MyApp\appSettings.json

Once published with dotnet publish, the previous paths goes to :

  • C:\Users\Me\AppData\Local\\MyApp\vbsjwe3q.y2w\appSettings.json

Is there a way to keep / retrieve the right path with a published app? By "right", I mean the directory where the executable is deplyed and not a temp directory.

Heres is my publish command:

dotnet publish -c Release -r win-x86 --self-contained false -p:PublishReadyToRun=true -p:PublishSingleFile=true MyApp.csproj

Read more here:

Content Attribution

This content was originally published by sinsedrix at Recent Questions - Stack Overflow, and is syndicated here via their RSS feed. You can read the original post over there.

%d bloggers like this: