共用方式為


部署和相依性

更新:2007 年 11 月

當專案中加入專案輸出群組、組件或合併模組時,Visual Studio 的部署工具會自動偵測相依性,並將它加入至部署專案。但有些情況下無法偵測到相依性。

秘訣

與其直接在部署專案中加入組件,不如加入組件所在的專案輸出群組。因為部署工具更容易偵測專案輸出群組的相依性。

對組件來說,可以偵測到其他組件的所有相依性。但如果組件參考 Unmanaged 元件 (例如,COM .dll),則無法偵測這個元件的任何相依性。同樣的,如果檔案直接加入到部署專案,有些相依性也無法偵測。無論何者,執行應用程式時通常都需要相依檔案,但這些檔案無法不讓安裝程式執行。

為避免這個問題,您必須先瞭解相依性的類型,再採取適當的動作:

  • 您參考的元件可能是其他產品的一部分,例如,Web 瀏覽器控制項 (shdocvw.dll),它是 Internet Explorer 的一部分。

    在這種情況下,您必須從部署專案中排除這個元件,並且應該加入一個啟動條件來檢查目標電腦上的元件,如果找不到還可防止安裝。一般使用者必須先安裝提供此元件的產品,然後才能安裝應用程式。

  • 您加入的 Unmanaged 元件可能不公開所有相依性 — 例如,Microsoft Foundation Classes (MFC) 不將當地語系化附屬檔案列為相依性。

    在這種情況下,您必須瞭解所有可能的相依性,並且將它們列入部署專案。您應該參閱元件文件或連絡元件作者,取得相依性清單。

    注意事項:

    大部分的相依性檢查工具 (如 Depends.exe) 只能找到早期繫結的相依性,而晚期繫結的相依性則只會出現在執行階段。

  • 您可能正參考對 Unmanaged 元件具有相依性的組件 — 例如,對 Microsoft Data Access Components (MDAC) 2.8 版具有相依性的 System.Data.dll。如需詳細資訊,請參閱 HOW TO:新增 Microsoft Data Access Components 的啟動條件

    為確保安裝所有相依檔案,您可以加入一個合併模組,內含元件和元件相依性。若想知道能否使用合併模組,請聯絡元件作者。Microsoft 網站上提供許多 Microsoft 元件的合併模組。

    如果無法使用合併模組,也許您想加入一個啟動條件在安裝時檢查元件,如果找不到還可防止安裝。

請參閱

工作

HOW TO:從專案輸出群組中排除檔案

HOW TO:新增 Microsoft Data Access Components 的啟動條件

其他資源

部署中的啟動條件管理