【问题标题】:Change the program name of exe on UAC更改UAC上exe的程序名称
【发布时间】:2014-03-09 06:00:32
【问题描述】:

我有一个 exe,当尝试以管理员身份运行时,程序名称显示为 TestSampleConsoleSign.exe。它是一个简单的控制台应用程序,其中包含 hello world。

namespace TestSampleConsoleSign
{
   class Program
   {
    static void Main(string[] args)
    {
        Console.WriteLine("Hello World");
        Console.ReadLine();
    }
  }
}

我还将 AssemblyInfo.cs 中的 AssemblyTitle 字段更改为 HelloWorld。但启用 UAC 后,程序名称仍显示为 TestSampleConsoleSign.exe 而不是 HelloWorld。我还尝试通过使用以下命令创建数字证书来签名工具:http://msdn.microsoft.com/en-us/library/ff699202.aspx 并使用以下命令对我的 exe 进行签名

signtool sign /f test.pfx /p password /d HelloWorld TestSampleConsoleSign.exe

我在How change attributes to UAC? 上找到了这个解决方案我错过了什么?这是强制性的吗-How change attributes to UAC?

【问题讨论】:

  • 你不能自签名可执行文件,你必须花钱。
  • @HansPassant 。没有其他方法可以更改程序名称吗?

标签: c# uac signtool


【解决方案1】:

首先我确认在 AssemblyInfo.cs 中更改 AssemblyTitle 是正确的位置。请注意,此字段在 Windows 资源管理器的属性详细信息页面中显示为 文件描述。也许您想仔细检查您的 AssemblyTitle 是否出现在那里,以确保您确实触发了重建。

然后我尝试使用不同的证书运行像您这样的控制台应用程序,然后发生了以下情况:

  • 自行创建的证书(如您的):UAC 显示程序的可执行名称。
  • 具有可信根授权的“官方”证书:UAC 显示文件描述 (AssemblyTitle)

有趣的是:即使我将可执行文件名称更改为包含“Setup”的名称,UAC 对话框也不会显示。为了显示 UAC 对话框,我必须选中“以管理员身份运行”复选标记。以管理员身份运行可能是您的默认设置,如果您已包含具有此类设置的 app.manifest 文件。

【讨论】:

  • 我已更改 UAC 设置以进行测试,就像您提到的那样,我右键单击并以管理员身份运行。看起来就像@HansPassant 提到的那样,没有办法在 UAC 上显示自定义名称。如您所说,它需要官方证书
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
  • 2011-01-14
  • 1970-01-01
相关资源
最近更新 更多