C# 如何正确设置 Windows 8 任务管理器的程序集标题?
Posted
技术标签:
【中文标题】C# 如何正确设置 Windows 8 任务管理器的程序集标题?【英文标题】:C# How to correctly set assembly title for Windows 8 Task Manager? 【发布时间】:2013-09-05 23:03:50 【问题描述】:我已将我的 C# Winforms 可执行文件的标题和程序集信息设置如下:
[assembly: AssemblyTitle("Widgets Galore")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Widgets Inc")]
[assembly: AssemblyProduct("Widgets Galore")]
[assembly: AssemblyCopyright("Copyright © Widgets Inc 2012")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
...
MainForm.Text = "Widgets Galore by Widgets Incorporated";
...
// Compiles to: widgets.app.exe
在 Windows 7 任务管理器中,它正确地将进程显示为主窗体标题:
"Widgets Galore by Widgets Incorporated"
但是在 Windows 8 任务管理器中,它错误地显示了可执行文件的名称,并带有一个子项:
"widgets.app"
|--"Widgets Galore by Widgets Incorporated".
我在 Windows 8 任务管理器中看到许多其他应用程序以友好名称列出,并且希望看到我的应用程序也这样做。
如何强制 W8 为我的应用程序起一个好记的名称?
-布伦丹
【问题讨论】:
它使用 [AssemblyTitle] 属性。很难调和你的问题。首先使用一个虚拟的 Winforms 项目来隔离它。接下来寻找自定义 .res 文件的问题。 【参考方案1】:通过反复试验,我发现如果您的文件没有经过数字签名,Windows 8 任务管理器会显示 exe 名称而不管 [AssemblyTitle]。我认为这是一种安全措施。解决方案:数字签名。
【讨论】:
以上是关于C# 如何正确设置 Windows 8 任务管理器的程序集标题?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# 中应用 Windows 任务栏更改而不重新启动资源管理器?
像任务管理器(Windows 8)一样杀死进程,因为访问被拒绝