檔案 '<file>' 未簽署
更新:2007 年 11 月
錯誤訊息
檔案 '<file>' 未簽署。部署專案中包含已被取代的簽署屬性。如需詳細資訊,請參閱 [說明]。
在 Visual Studio 2003 (含) 以前的版本中可以使用的簽署功能,已經從安裝及部署專案 ([安裝] 專案、[Web 安裝] 專案、[封包] 專案和 [合併模組]) 中移除了。如果您將已啟用簽署的 Visual Studio 2003 專案匯入 Visual Studio 2005 中,或者如果您想要為部署專案啟用簽署,則必須在建置後事件中使用 Signtool.exe (Windows Platform SDK 中的組件簽署工具) 在建署輸出中簽署檔案。如需詳細資訊,請參閱簽署工具 (signtool.exe)。
在簡單的案例中,並不會有鬆散的檔案,只有啟動載入應用程式 (setup.exe) 和/或套件檔案,它們會建置輸出 (Windows Installer 套件、.cab 檔或合併模組)。在此案例中,您會在建置後事件對話方塊中叫用 (Invoke) Signtool.exe。
在進階的案例中,組成部署的檔案可能是鬆散的,這表示在建置輸出中的檔案較多,而不是只有啟動載入應用程式和 Windows Installer 套件。通常您會希望簽署這些額外的鬆散檔案,並使用每個已簽署元件的雜湊程式碼來更新 Windows Installer 套件。此動作必須在會執行指令碼的建置後事件中完成,才能執行下列動作:
逐一查看建置輸出路徑中的鬆散檔案集和 CAB 檔,並使用 Signtool.exe 簽署它們。
在 Windows Installer 套件中,更新您已簽署的每個檔案的雜湊程式碼。
簽署啟動載入應用程式並使用 Signtool.exe 簽署 Windows Installer 套件。
若要校正簡單案例中的這個錯誤
在建置後事件對話方塊中叫用 Signtool.exe。
<SDK 安裝目錄>Signtool sign –f "檔名.pfx" –p "密碼" $(BuiltOuputPath)\Setup2.msi
<SDK 安裝目錄>Signtool sign –f "檔名.pfx" –p "密碼" $(BuiltOuputPath)\setup.exe
如果您的憑證儲存在 .pvk 和 .spc 檔中,您可以使用 Windows Platform SDK 工具 pvk2pfx.exe,將這些檔案的格式轉換為 .pfx。