防止每次运行都更改程序集名称

本文关键字:程序集 运行 | 更新日期: 2023-09-27 18:30:45

如标题中所述,我在随后的调用中表现出奇怪的行为

Assembly.GetExecutingAssembly().GetName().Name

我的exe名称是CoreService.exe,通过上面的调用,每次调用它时我都会得到不同的响应,例如:

  1. 核心服务.exe
  2. 核心服务.exe
  3. CoreService.Exe
  4. Coreservice.Exe
  5. 核心服务.EXE
  6. 核心服务.EXE

我在Windows Server 2012上得到了这种行为,只有当我将CoreService作为Windows服务而不是Windows进程启动时,任何人都可以解释为什么这种奇怪的事情?

防止每次运行都更改程序集名称

实际上Assembly.GetExecutingAssembly().GetName().Name不包括扩展名。

AssemblyName.Name 属性

获取或设置 程序集的简单名称。这通常是(但不一定)的 程序集清单文件的文件名减去其扩展名。

或者你实际上已经击中了它的"但不一定"部分......这将是我第一次听说。

如果是这种情况,并且除了好奇之外,您还需要做一些事情,那么您可以确保一致的结果。

Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().GetName().Name);