在UAC上更改exe的程序名称

时间:2014-02-11 12:37:15

标签: c# uac signtool

我有一个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?

1 个答案:

答案 0 :(得分:2)

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

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

  • 自创证书(与您的一样):UAC显示程序的可执行文件名称。
  • 具有受信任的根颁发机构的“官方”证书:UAC显示文件说明(AssemblyTitle)

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