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\Temp.net\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: https://stackoverflow.com/questions/65917934/dotnet-publish-sets-assembly-path-in-temp-directory-instead-of-exe-directory
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.