Windows เก็บไฟล์ MSI ไว้สำหรับการถอนการติดตั้งที่ไหน


25

ฉันพยายามคิดว่า Windows (XP ถึง 7) จัดการกับการติดตั้งและถอนการติดตั้งไฟล์ MSI อย่างไร ฉันเกิดขึ้นในสถานการณ์ที่ Windows Installer ไม่สามารถถอนการติดตั้งได้เนื่องจากไฟล์ MSI ดั้งเดิมหายไปซึ่งทำให้ฉันเชื่อว่ามันเก็บสำเนาของแพ็คเกจ MSI ที่ติดตั้งไว้ทุกที่ ที่ไหน?

ฉันมีทฤษฎีสองสามข้อ

  1. คาดว่าจะอยู่ในโฟลเดอร์เดียวกันกับที่ติดตั้ง รีจิสตรีคีย์ในHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstallจะชี้ไปที่โฟลเดอร์การติดตั้งดั้งเดิมและข้อความแสดงข้อผิดพลาดเมื่อไฟล์ MSI หายไปมักจะชี้ไปที่สิ่งนี้ การลบไฟล์ MSI ออกจากโฟลเดอร์นี้ไม่ได้ขัดขวางกระบวนการถอนการติดตั้งดังนั้นฉันจึงปฏิเสธทฤษฎีนี้

  2. C:\Windows\Installer. โฟลเดอร์นี้มีไฟล์ MSI ที่มีชื่อดูเหมือนว่าจะสุ่ม แต่รายการนี้ไม่สมบูรณ์ ฉันจะค้นหารายการในคีย์รีจิสทรีที่กล่าวถึงใน 1) ซึ่งไม่มีสำเนาของ MSI ในโฟลเดอร์นี้

แล้วมันทำงานอย่างไร ตัวติดตั้ง windows สามารถถอนการติดตั้งแอปพลิเคชั่นที่ติดตั้งของ MSI ได้อย่างไรแม้ว่า MSI ไม่ได้อยู่ใน 1) และไม่ใช่ใน 2)


Windows ไม่ได้เก็บไว้เสมอ มีหลายวิธีที่ผู้ใช้จะบอกให้ Windows ล้างแคชของไฟล์เหล่านี้ หากคุณมีซอฟต์แวร์ที่ไม่สามารถถอนการติดตั้งได้แสดงว่านักพัฒนาซอฟต์แวร์ติดตั้งผิด สถานที่จะแตกต่างกันระหว่าง Windows XP (ทำไมคุณมีความกังวลใจเกี่ยวกับระบบปฏิบัติการที่ได้รับการสนับสนุน) และ Windows 7 และ / หรือ Windows 8
Ramhound

คำตอบ:


44

เห็นได้ชัดว่ามันใช้งานได้เช่นนี้ (บน Windows 7 ฉันไม่ทราบเกี่ยวกับ XP และระบบปฏิบัติการอื่น ๆ ):

เมื่อผู้ใช้ติดตั้งแอพบางตัว Windows จะทำสิ่งต่อไปนี้:

1) สร้างรีจิสตรีคีย์

HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ [GUID ของผลิตภัณฑ์]

สำหรับแอพนี้

หากคุณสามารถเข้าถึงไฟล์ msi ดั้งเดิมของตัวติดตั้งแอปของคุณคุณสามารถค้นหา [ProductID GUID] โดยเปิดไฟล์ msi ใน orca.exe และคลิกที่ "คุณสมบัติ" ด้านซ้ายใน orca และค้นหา "ProductCode" เส้นด้านขวา หากคุณไม่สามารถเข้าถึงไฟล์ * .msi ดั้งเดิมคุณสามารถค้นหารีจิสตรีคีย์ HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall ได้ในชื่อแอป

หากคุณต้องการลบแอพของคุณ (ซึ่งปฏิเสธการถอนการติดตั้งตัวอย่าง) จากรายการแอพที่ติดตั้งในแผงควบคุมคุณสามารถลบรายการออกจากปุ่มถอนการติดตั้งนี้ มันจะหายไปจากรายการในแผงควบคุม แต่ Windows จะยังจำได้ ตัวอย่างเช่นหากคุณพยายามติดตั้งแอพเดียวกันเวอร์ชันถัดไปตัวติดตั้งอาจยังยืนยันว่าจะถอนการติดตั้งเวอร์ชันก่อนหน้า ดูรายการ 2 สำหรับสิ่งนั้น

2) Windows คัดลอกไฟล์ * .msi ดั้งเดิมไปไว้ในโฟลเดอร์ C: \ Windows \ Installer และเปลี่ยนชื่อเป็นชื่อแบบสุ่ม (เก็บนามสกุล. msi ไว้) Windows ยังสร้างคีย์ในรีจิสทรีในHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\[InternalUserId]\Products\[some random guid-like sequence of chars identifying to windows your installation]\InstallProperties.ValueName "LocalPackage" ในคีย์ reg นี้จะชี้ไปที่ไฟล์ msi ที่เปลี่ยนชื่อ ในการค้นหาไฟล์ใน C: \ windows \ Installer คุณสามารถนำทางไปยังโฟลเดอร์นี้ใน Windows explorer สลับไปยังมุมมอง Details ทำให้คอลัมน์ "Subject" ปรากฏขึ้นและคุณจะเห็น nnnnnnnn.msi ทั้งหมดที่ชื่อผลิตภัณฑ์ที่เกี่ยวข้องตรงกัน


6
ผมอยากจะขึ้นลงคะแนนเสียงคุณสองครั้งสำหรับความลับที่ซ่อนอยู่ make column "Subject" visible and you will see for all nnnnnnnn.msi fies their corresponding name of product.- Windows เป็นระบบปฏิบัติการที่ลึกลับเช่นนี้ P
RBT

3) ขั้นตอนที่ 3 เป็นสิ่งจำเป็นสำหรับฉัน ฉันต้องคัดลอกไฟล์ 5188bfc6.msi (hex # .msi) และเปลี่ยนชื่อเป็นชื่อไฟล์เดิม MyApp.msi ก่อนที่ตัวถอนการติดตั้งจะยอมรับไฟล์ หลังจากถอนการติดตั้งนี้ทำงานได้ดี
Joe B
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.