如果元件規則中斷,會發生什麼事?
在某些情況下,作者可能會決定需要打破建立元件的規則,如在 將應用程式組織成元件 和 變更元件程式碼中所述。 作者需要注意進行此舉的可能後果,並且必須保證其元件在任何情況下不會安裝在可能損壞用戶系統中其他應用程式或元件的位置。
下列清單描述作者有時如何違反建議的元件規則及其可能的後果。
作者會將資源新增至元件,而不需要變更元件程序代碼。
- 與舊元件一起安裝的產品在其安裝資料庫中沒有新增資源的相關信息。
- 當同一部電腦上同時安裝了一個具有新增資源的新產品和一個舊產品時,如果先卸載新產品,則可能會留下這些資源。
- 沒有新增資源的舊產品無法修復較新版本的元件。 重新安裝舊產品並不會還原新增的資源。
作者會從元件中移除資源,而不需變更元件程序代碼。
- 隨新元件一起安裝的產品在其安裝資料庫中沒有已移除資源的相關信息。
- 如果一個具備資源資訊的舊產品和一個新產品都安裝在同一部電腦上,而舊產品被先卸載,那麼這些資源可能會被留下來。
- 具有已移除資源的新產品無法修復舊版的產品。 重新安裝新產品並不會還原已移除的資源。
作者包含與舊版不相容的檔案,而不需要變更元件程序代碼。
如果元件中包含不相容的檔案而不變更元件程式代碼,預設檔案版本設定 會導致安裝程式以較新的不相容檔案覆寫源檔。 這可能會損壞需要源檔的舊產品。 它也可能防止安裝程式修復舊產品,因為元件的密鑰路徑檔案版本會決定元件的版本。 如果已安裝較新版本的金鑰路徑檔案,安裝程式就不會安裝舊版的元件。 如需詳細資訊,請參閱 檔案版本設定規則。 在此情況下,必須先移除新產品,才能重新安裝舊產品。
- 預設檔案版本設定 會導致安裝程式以較新的不相容檔案覆寫源檔。
- 需要源檔的舊產品會損毀。
- 它也可能防止安裝程式修復舊產品,因為元件的密鑰路徑檔案版本會決定元件的版本。 如果已安裝較新版本的金鑰路徑檔案,安裝程式就不會安裝舊版的元件。 如需詳細資訊,請參閱 檔案版本設定規則。 在此情況下,必須先移除新產品,才能重新安裝舊產品。
作者在兩個不同的元件中包含相同的資源。
如果兩個元件具有相同名稱和位置的資源,而且兩個元件都安裝到相同的資料夾中,則移除任一元件會移除通用資源,這會損害其餘元件。
- 卸載任一元件會移除資源,並中斷另一個元件。
- 元件參考計數機制已損毀。