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

Mik*_*ike 16 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程序集吗?谢谢!

MSa*_*ers 13

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

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

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

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

  • 你见过http://msdn.microsoft.com/en-us/library/ms537361(VS.85).aspx吗?当前的Microsoft代码签名技术称为"Authenticode",应该会出现更多的站点. (3认同)