2010-01-15 45 views
5

Tôi phải thay thế nó vì lỗi chặn phần mềm gỡ cài đặt, nhưng Windows không thể tìm thấy tệp MSI nếu tôi sử dụng tiện ích tìm kiếm tệp, nhưng tôi nghĩ MSI được lưu trữ ở nơi tiện ích Add or Remove Programs có thể sử dụng nó.Khi tệp MSI được sao chép sau khi cài đặt?

+0

Các khuyến cáo chiều/** đúng ** để khắc phục vấn đề gỡ bỏ cài đặt là ** sử dụng một bản nâng cấp nhỏ để "hotfix" sản phẩm được cài đặt, và sau đó kích hoạt trình tự gỡ cài đặt cố định ** như được chỉ ra bên dưới bởi ** saschabeaumont **. Nâng cấp nhỏ có thể được phân phối như một MSI thông thường hoặc như một gói vá (đối với các sản phẩm lớn). –

Trả lời

11

Nó không đi vào% windir% \ installer \

Mặc dù tôi nghĩ rằng các tệp có thể được đổi tên. Không chắc chắn nơi bạn lấy ánh xạ tên từ ...

Thư mục này rất lớn nên tôi chuyển nó sang ổ đĩa ngoài. Điều này đôi khi gây gỡ cài đặt hoặc cập nhật không thành công với lỗi msi bị thiếu, nhưng điều này có thể được khắc phục bằng cách đặt thư mục trở lại

+1

excelent! Tôi chắc chắn rằng bây giờ tập tin được đổi tên, nhưng bạn có thể tìm thấy tên mới trong Windows Registry –

+0

ahh vui mừng bạn biết làm thế nào để có được ánh xạ –

+1

Đối với các tập tin MSI đổi tên kiểm tra thuộc tính 'LocalPackage' bên trong registry tại đường dẫn -' [ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData \ \ Sản phẩm \ \ InstallProperties] '. 'InternalUserId' là thứ sắp xếp' S-1-5-18'. 'ProductGUID' là một GUID như' 00058CD18F0BF523DA1072073D56715D' được nhúng dưới dạng thuộc tính công khai bên trong tệp MSI. – RBT

-1

Có thể msi vừa bị xóa. Bạn có thể xóa thư mục cài đặt và chạy tiện ích dọn dẹp msi và sau đó cài đặt lại chương trình của bạn.

+0

đã chỉnh sửa câu hỏi để làm rõ –

+0

MSIZAP (Windows Installer Cleanup) là một công cụ rất nguy hiểm. Xem http://robmensching.com/blog/posts/2009/3/6/More-on-Haacks-Troubleshooting-Windows-MSI-Installers để biết thêm thông tin – saschabeaumont

6

Bạn có thể buộc cài đặt lại/cài đặt lại bằng MSIEXEC, cách được khuyến nghị cập nhật gói cài đặt không thể nếu không được gỡ bỏ là để recache với một gói cố định, sau đó gỡ bỏ cài đặt như bình thường.

MSIEXEC /fv setup.msi 
4

Khi bạn cài đặt một gói sử dụng dịch vụ Windows Installer, file msi không được cache trong ẩn thư mục "% windir% \ cài đặt". Nó được đổi tên và tên mới là một chuỗi thập lục phân không có mối tương quan rõ ràng với tên gốc. Một cái gì đó như "123ab4.msi".

Thật khó để tìm ra xem bản sao nào là bản sao ứng dụng của bạn được lưu trong bộ nhớ cache. Cách nhanh nhất là tìm tệp được lưu trong bộ nhớ cache có cùng kích thước. Khi bạn nghĩ rằng bạn đã tìm thấy nó, di chuột qua tên của tệp trong Windows Explorer. Chú giải công cụ sẽ xuất hiện và nó sẽ hiển thị cho bạn dữ liệu từ luồng thông tin tóm tắt của gói. Tên sản phẩm, tên tác giả, v.v. Khi bạn đã tìm thấy đúng tệp, bạn có thể chỉnh sửa trực tiếp tệp đó bằng một công cụ như Orca.

Nếu bạn chỉ đang cố khắc phục mọi thứ trên máy của mình, thì việc chỉnh sửa trực tiếp cơ sở dữ liệu đã lưu trong bộ nhớ cache có thể là một lựa chọn tốt. Tuy nhiên, Microsoft cung cấp một cách tích hợp để xử lý một vấn đề như thế này. Bạn có thể tạo một bản vá (một tệp msp), có chứa sự khác biệt giữa tệp msi gốc và tệp msi được cập nhật của bạn. Bản vá đó sau đó có thể được phân phối cho bất kỳ ai khác đã cài đặt ứng dụng của bạn bằng cài đặt gốc và nó sẽ dễ sử dụng.

MSDN thảo luận tạo miếng vá ở đây - http://msdn.microsoft.com/en-us/library/aa368060%28VS.85%29.aspx

Xóa thư mục ẩn thường không phải là một ý tưởng tốt, vì điều đó phá vỡ một số chức năng cốt lõi của dịch vụ Installer. Điều đó bao gồm vá, phát hiện và sửa chữa và khả năng nâng cấp thông qua di chuyển thay vì gỡ cài đặt và cài đặt lại.

2

Để xem tên tệp msi hữu ích trong C:\Windows\Installer nhấp chuột phải ở đầu trình khám phá và thêm trường để xem Chủ đề (có thể sẽ phải chọn nhiều hơn vì không phải là tên mặc định, ngày sửa đổi, v.v ...) Từ đây bạn có thể tìm thấy msi và sử dụng nó để gỡ cài đặt chương trình.

3

tôi đã đặt xuống rất nhiều ý kiến ​​vào các câu trả lời được chấp nhận vì vậy tôi nghĩ tôi thà gửi một câu trả lời sau khi tạo một bản tóm tắt với vài chi tiết bổ sung thêm:

Installshield tạo ra một bản sao của tập tin * .msi vào %windir%\installer\ đường dẫn trong đó% windir% là biến môi trường thường trỏ đến C:\Windows\. Trước khi tạo bản sao của *.Các tệp msi đổi tên nó bằng cách sử dụng một số danh pháp ngẫu nhiên, ví dụ: Tôi có thể xem một tệp có tên là 65ec5c99.msi trong thư mục C:\Windows\Installer của tôi.

Bây giờ để tìm ra tên sản phẩm thực tế cho các tập tin MSI đổi tên có hai cách:

  1. Kiểm tra LocalPackage thuộc tính bên trong registry tại đường - [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersio‌​n\Installer\UserData‌​\<InternalUserId>\Pr‌​oducts\<ProductGUID>‌​\InstallProperties]. InternalUserId là nội dung của loại S-1-5-18. ProductGUID là GUID giống như 00058CD18F0BF523DA1072073D56715D được nhúng dưới dạng thuộc tính công khai bên trong tệp MSI. Bạn có thể kiểm tra thuộc tính công khai này bằng cách mở tệp MSI bằng bất kỳ công cụ nào, ví dụ: orca

  2. Mở thư mục C:\Windows\Installer trong trình khám phá. Thay đổi chế độ xem của thư mục thành chế độ xem Details. Thêm cột Subject vào chế độ xem. Whooaa !! Bí ẩn được giải quyết. Tên sản phẩm là có thể nhìn thấy ngay trong Subject cột

enter image description here

Các vấn đề liên quan