1

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

我在如何将属性更改为 UAC?我错过了什么?这是强制性的 - 如何将属性更改为 UAC?

4

1 回答 1

2

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

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

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

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

于 2014-02-11T13:16:40.817 回答