使用 .netcore 3.0 并使用 /p:PublishSingleFile=true 标志时如何获取可执行文件的实际路径?

The*_*his 10 c# systemd .net-core ubuntu-16.04 netcoreapp3.0

我最近将一个应用程序升级到 dotnet core 3,并在构建过程中开始使用 PublishSingleFile 标志。通过这两个更改,找到可执行路径的方式发生了变化。现在,我没有获取可执行文件所在的路径,而是重定向到一个随机目录/var/tmp/.net/,就像我以前获取/opt/appdir/.

Directory.SetCurrentDirectory(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location));
Run Code Online (Sandbox Code Playgroud)

编辑:所以看起来它吐出的随机目录实际上指向我的应用程序的解压缩版本,该版本不包含其他目录中的重要资源。

Vim*_*mes 25

以下似乎将您所追求的路径提供给原始可执行文件:

System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
Run Code Online (Sandbox Code Playgroud)