防止每次运行都更改程序集名称
本文关键字:程序集 运行 | 更新日期: 2023-09-27 18:30:45
如标题中所述,我在随后的调用中表现出奇怪的行为
Assembly.GetExecutingAssembly().GetName().Name
我的exe名称是CoreService.exe,通过上面的调用,每次调用它时我都会得到不同的响应,例如:
- 核心服务.exe
- 核心服务.exe
- CoreService.Exe
- Coreservice.Exe
- 核心服务.EXE
- 核心服务.EXE
我在Windows Server 2012上得到了这种行为,只有当我将CoreService作为Windows服务而不是Windows进程启动时,任何人都可以解释为什么这种奇怪的事情?
实际上Assembly.GetExecutingAssembly().GetName().Name
不包括扩展名。
AssemblyName.Name 属性
获取或设置 程序集的简单名称。这通常是(但不一定)的 程序集清单文件的文件名减去其扩展名。
或者你实际上已经击中了它的"但不一定"部分......这将是我第一次听说。
如果是这种情况,并且除了好奇之外,您还需要做一些事情,那么您可以确保一致的结果。
Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().GetName().Name);