天天看點

解決安裝 VS2005 SP1 時的錯誤

    解決安裝 VS2005 SP1 時“無法使用此産品的安裝源,請确認安裝源存在,并且您可以通路它”的錯誤:

    微軟的作業系統和應用軟體所打的更新檔,比解放前窮人衣服上的更新檔疊更新檔還多。不過更新檔多而不亂,也着實讓人佩服。為了在 VS2005 上研究一下 Silverlight 應用開發,需要安裝 VS2005 的 SP1 更新檔程式。花了 30 分鐘下載下傳下來,輕按兩下運作,幾分鐘過去,報一個錯誤:“無法使用此産品的安裝源,請确認安裝源存在,并且您可以通路它。”

    奇怪,“安裝源”到底是指 SP1 安裝檔案呢,還是指已經安裝的 VS2005?

    本人的 OS 是 Windows server 2003 R2 企業版,打過 SP2 更新檔了。VS 安裝的是 Visual Studio 2005 Professional 英文版,安裝包也是英文版,沒錯。打開臨時檔案夾看了看, 找到安裝 Log,看到了錯誤:“Error 1718. File was rejected by digital signature policy”。 有的放矢,解決問題就相對容易了。

    網上搜尋了一下,說原因如下:

    當計算機沒有足夠的連續記憶體可供 Windows Server 2003 或 Windows XP 用于驗證是否對 .msi 包或 .msp 包正确進行了簽名時将出現此錯誤。

    數字簽名可幫助確定程式包不會被篡改。當 Windows Installer 調用 SaferIdentifyLevel 函數時,Windows Server 2003 和 Windows XP 使用其他安全級别,即軟體限制政策。

    當 Windows Installer 同時調用 SaferIdentifyLevel 函數和 SAFER_CRITERIA_IMAGEHASH 标志時,整個程式包被加載到計算機上的記憶體中。計算機必須擁有程式包大小所需的足夠連續記憶體。如果計算機沒有足夠的連續記憶體,則會出現錯誤。由于出現錯誤,Windows Installer 将無法驗證是否對該程式包正确地進行了簽名。是以,會收到“症狀”部分中提到的錯誤消息。

    解決方法一:

    1.打開系統資料庫編輯器,找到:HKEY_LOCAL_MACHINE/Software/Policies/Microsoft/Windows/Safer/CodeIdentifiers

    2.将 PolicyScope 的系統資料庫值從0改為1。(沒有就建立一個)

    3.在指令行中執行 net stop msiserver,停止 Windows Installer 服務。

    4.安裝 SP1。

    5.裝完後,把步驟2中的 PolicyScope 值改回為 0.

    方法二:

    如果以上步驟不能解決該問題,請按照下列步驟操作:

    1.管理工具-》本地安全設定-》軟體限制政策。(如果如果沒有軟體限制,右擊“軟體限制政策”,建立一個。)

    2.“對象類型”下輕按兩下“強制”,将第2個單選組從“所有使用者”改為“除本地管理者以外的所有使用者”。

    3.重新開機,安裝 SP1。

    4.再恢複原先設定。

    張慶(網眼)

    西安程式員俱樂部:http://club.xasoft.org

    電腦學習網:http://www.why100000.com

    2008-4-17

繼續閱讀