我創建了一個Windows窗體應用程序使用c#的應用程序的輸出是.exe,在這個項目的引用中,我添加了許多dll的引用,這個項目需要所有這些引用都是創建的但是這些引用的dll,其中一些正在使用第三個Dll。包簽名和數字證書
我使用wix Toolset在安裝程序項目中打包了.exe和所有引用的dll。
請注意,.exe和安裝程序沒有強名稱,也沒有使用密鑰簽名。
我把這個.msi結果文件上傳到內聯網服務器,但是當用戶通過谷歌瀏覽器從內聯網下載它時,它會給出如圖1所示的警告信息。 Chrome warning
當用戶雙擊下載後的.msi文件啓動安裝過程時,會激活windows智能屏幕。 Smart screen warning
,並在運行安裝程序會顯示黃色的橫幅用戶帳戶控制提示,如圖三。[Windows智能屏幕警告] [3]
我做了很多invistigations的,我不得不發現,這是因爲我的代碼沒有用數字證書進行數字簽名,實際上我沒有這方面的經驗,我不知道這是真正的原因還是什麼。
我是否需要通過從.net的簽名選項卡簽署程序集來強制簽署.exe,我也沒有關於演唱可執行程序包的經驗。
所有我需要的是,我不希望用戶覺得他正在下載並運行不受信任的東西。
如果原因是包需要數字證書,我是否需要用強名稱來裝配程序集才能用數字證書對其進行簽名?
非常感謝您的快速回放和答案,我只需要問幾個問題。關於你的觀點[Install InstallShield for .exe]爲什麼我必須安裝shhiled,什麼是.exe我應該生成?我以爲我應該購買證書,然後用它來簽署my.msi軟件包,使用microsoft SDK中存在的signtool.exe。 2 - 我可以使用Visual Studio創建一個測試證書,並使用它來使用signtool.exe簽署我的.msi文件.3 - 如果我購買了證書並使用它作爲你建議簽署我的.msi軟件包,它將如何在用戶機器上信任? – Laila
您可以繼續使用TestCertificate並使用Signtool.exe簽署.msi。首先生成TestCertificate並安裝在您用來簽署.exe或.msi的機器中。之後,嘗試運行應用程序,你會看到發行商的名字。TestCertificate只適用於您的機器。如果您購買證書,請在您用於簽署.exe或.msi的計算機上安裝該證書。他們試圖在任何機器上運行,你會看到出版商的名字。 – null1941
Installshield是SoftwareTool,用於創建具有代碼簽名等功能的安裝程序。使用這個軟件簽名應用程序非常簡單(使用Signtool.exe進行內部簽名)。 :) – null1941