2010-02-17 50 views
16

我有一個應用程序,我需要分發並希望對其進行簽名,以便我可以避免Vista中的UAC警告。目前我看到這個...如何簽名安裝程序,以防止Vista的UAC警告

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

我使用Visual Studio創建安裝程序,但該應用程序不是在.NET編寫的。我是否需要簽署.msi和.msi中包含的.exe文件?我需要什麼樣的鑰匙,我應該在哪裏得到它?目前我正在考慮verisign,儘管它們很貴,我需要這個信任。一旦我得到鑰匙,我該如何簽名?如果我將undestand正確的al.exe和signtool.exe用於.net程序集的權利?謝謝!

回答

13

這個特別的對話框是最嚇人的。如果應用程序已簽名但沒有簽名,則會有一個不太可怕的問題。 (也就是隻有你簽名)。爲了完全繞過它,你確實需要一個聯署。

Windows包含受信任根證書頒發機構的列表(MMC.EXE>添加管理單元>證書>計算機帳戶)。其中一些旨在用於「代碼簽名」,這意味着這些證書頒發機構可以簽署您的簽名。 Verisign在該列表中。如果你在公司的互聯網上工作,公司的簽名可能也可能在那裏。

無論如何,一旦你有一個會簽證書,你確實使用signtool來簽署你的應用程序和它的安裝程序。簽署自己的應用程序是很好的做法,並且在配置管理中有很大幫助。 Signtool確實有一個GUI,但也可以在CLI模式下使用。當你希望你的構建過程提示一次密鑰然後建立一切到安裝程序時,後者很有用。 (不要將公司證書的密碼硬編碼到構建過程中!)。

但正如我剛纔所說,你也可以簽署一個沒有簽名的簽名。這對於測試非常有用,並且可以掌握整個流程並執行自動構建。

+1

您有參考或者網站顯示這是如何工作的?我找不到有關它的很多文檔。 謝謝 – Mmarquee 2010-03-05 21:19:11

+3

你見過http://msdn.microsoft.com/en-us/library/ms537361(VS.85).aspx?正確的微軟代碼簽名技術被稱爲「Authenticode」,這應該會出現更多的網站。 – MSalters 2010-03-08 13:43:25

相關問題