如何签署安装程序以防止Vista的UAC警告

时间:2010-02-17 15:39:08

标签: deployment windows-installer uac code-signing

我有一个应用程序,我需要分发,并希望签名,以便我可以避免在Vista中的UAC警告。目前我看到了......

UAC http://img694.imageshack.us/img694/7289/uac.jpg

我正在使用visual studio来创建安装程序,但应用程序不是用.net编写的。我是否需要同时签署.msi中包含的.msi和.exe文件?我需要什么样的钥匙?我应该在哪里拿到钥匙?目前我正在考虑verisign,虽然它们很昂贵我需要这个值得信任。一旦我拿到密钥,我该如何签名?如果我没有找到正确的al.exe和signtool.exe用于.net程序集吗?谢谢!

1 个答案:

答案 0 :(得分:13)

这个特别的对话是最可怕的。如果应用程序已签名但没有会签,则会有一个不太可怕的问题。 (即它只由你签名)。要完全绕过它,你确实需要一个签名。

Windows包含受信任的根证书颁发机构列表。(MMC.EXE>添加管理单元>证书>计算机帐户)。其中一些用于“代码签名”,这意味着那些证书颁发机构可以对您的签名进行反签名。威瑞信就在那份名单中。如果您正在企业互联网上工作,公司签名可能/也可能在那里。

无论如何,一旦你有了会签证书,你确实使用signtool来签署你的应用程序及其安装程序。签署自己的应用程序是很好的做法,并在配置管理中提供了很多帮助。 Signtool确实有GUI,但也可以在CLI模式下使用。当您希望构建过程提示一次键,然后将所有内容构建到安装程序时,后者非常有用。 (不要将公司证书的密码硬编码到构建过程中!)。

但正如我之前所说,你也可以签署一份非会签签名。这对于测试非常有用,同时也可以了解整个过程并进行自动构建。