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

时间:2016-01-18 11:22:23

标签: c# reflection .net-assembly

如标题中所述,我随后的电话会有奇怪的行为

Assembly.GetExecutingAssembly().GetName().Name

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

  1. Coreservice.exe
  2. CoreService.exe
  3. CoreService.Exe
  4. Coreservice.Exe
  5. Coreservice.EXE
  6. CoreService.EXE
  7. 我在Windows Server 2012上运行此行为,只有当我将Windows服务作为Windows服务而不是Windows进程启动时,任何人都可以解释为什么会出现这种奇怪的事情?

1 个答案:

答案 0 :(得分:1)

实际上Assembly.GetExecutingAssembly().GetName().Name不包含扩展程序。

  

AssemblyName.Name属性

     

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

或者你实际上已经击中了“但不一定”的部分......这将是我听过的第一部。

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

Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().GetName().Name);
相关问题