无法获取 .net core 3.0 单个文件的原始可执行路径“/p:PublishSingleFile=true”

sxa*_*gan 8 c# .net-core

我发布了一个带有 '/p:PublishSingleFile=true' 选项的 .net 核心控制台应用程序,但现在程序集路径是它膨胀到的临时路径。

Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)

现在返回:

C:\Users\DEFUSER\AppData\Local\Temp\.net\myApp\3dzfa4fp.353\_myApp.json

起初:

C:\devel\myApp\bin\publish\_myApp.json

如何获取我最初放置 exe 文件的原始路径?

提前致谢!

Grz*_*lko 16

基于https://github.com/dotnet/coreclr/issues/25623,一年后Scott Hanselman证实了这一点:

  • .NET 核心: Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName)
  • .NET 5: AppContext.BaseDirectory.