แอสเซมบลีในแคชของแอสเซมบลีส่วนกลางหรือ SxS หายไปหลังจากที่คุณทำการปรับรุ่นที่สำคัญ โดยการใช้เป็นแพคเกจ Windows Installer

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 905238 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

อาการ

หลังจากที่คุณทำการปรับรุ่นที่สำคัญ โดยการใช้เป็นแพคเกจ Microsoft Windows Installer แอสเซมบลีในแคชของแอสเซมบลีส่วนกลางหรือ SxS (โฟลเดอร์แบบเคียงข้างกัน \Windows\WinSxS\) หายไป

สาเหตุ

ปัญหานี้เกิดขึ้นเมื่อการดำเนินการของ Windows Installer RemoveExistingProducts คือ sequenced ในตำแหน่งที่ตั้งที่เหมาะสมทำให้การอ้างอิงการนับของแอสเซมบลี และที่ทำให้การเอาออกของแอสเซมบลี premature การกระทำ RemoveExistingProducts คือ sequenced ในตาราง InstallExecuteSequence ในแพคเกจ Windows Installer ปัญหานี้เกิดขึ้นเมื่อ sequenced กระทำ RemoveExistingProducts ว่าผลิตภัณฑ์ที่เดิมถูกลบออกก่อนที่มีการติดตั้งผลิตภัณฑ์ใหม่

เมื่อมีย้ายแอสเซมบลีลงในแคชของแอสเซมบลีส่วนกลาง แอสเซมบลีที่ถูกเปลี่ยนชื่อ ตัวติดตั้ง windows ไม่สามารถระบุชื่อที่ถูกต้องของแอสเซมบลี windows Installer ต้องอาศัยอยู่กับการ Microsoft .NET Framework เพื่อจัดการชื่อ

เมื่อคุณทำการปรับรุ่นที่สำคัญ โดยใช้ Windows Installer แพ็คเกจ Windows Installer เรียกเข้าไปใน.NET Framework เพื่อทดสอบว่าแอสเซมบลีที่ได้มีการติดตั้งอยู่ในแคชแอสเซมบลีส่วนกลาง ถ้า.NET Framework ส่งกลับค่าใช่ ส่วนประกอบที่ประกอบด้วยแอสเซมบลีในแพคเกจ Windows Installer ปรับปรุงที่สำคัญของ ไม่ได้อนุญาตให้ใช้สำหรับการติดตั้ง ขั้นตอนถัดไป การดำเนินการ RemoveExistingProducts ทำงาน และ uninstalls แอสเซมบลีที่มีอยู่ในแคชแอสเซมบลีส่วนกลาง การกระทำ RemoveExistingProducts ทำนี้ได้เนื่องจากยังไม่ได้การลงทะเบียนผลิตภัณฑ์ใหม่เป็นไคลเอนต์ของแอสเซมบลี และไคลเอ็นต์อื่น ๆ ไม่มีอยู่ ติดตั้งเนื่องจากคอมโพเนนต์ในการปรับรุ่นหลักไม่ได้รับอนุญาตสำหรับการติดตั้ง แอสเซมบลีคือไม่ใหม่เมื่อการติดตั้งการปรับรุ่นหลักที่มีคอมโพเนนต์

ถ้าคุณ resequence กระทำ RemoveExistingProducts เพื่อจัดตารางเวลาการถอนการติดตั้งของผลิตภัณฑ์เดิมหลังจากที่มีการติดตั้งผลิตภัณฑ์ใหม่ แอสเซมบลีจะไม่สามารถเอาออก แอสเซมบลีจะไม่ถูกเอาออกได้เนื่องจากแอสเซมบลีในขณะนี้มีการเติมการอ้างอิงนับจากผลิตภัณฑ์ใหม่ ดังนั้น ถึงแม้ว่าการติดตั้งแอสเซมบลีที่ถูกข้ามไปสำหรับการปรับรุ่นหลัก แอสเซมบลีที่ยังคงอยู่เนื่องจากไคลเอ็นต์อื่น ๆ ที่อ้างอิงแอสเซมบลี ผลิตภัณฑ์ใหม่และผลิตภัณฑ์ที่เก่าอ้างอิงแอสเซมบลี

หมายเหตุ:เมื่อแอสเซมบลีไม่อยู่ในแคชของแอสเซมบลีส่วนกลาง ไม่มีการเปลี่ยนชื่อเกิดขึ้น ใช้กฎการกำหนดรุ่นแฟ้ม Windows Installer ที่มาตรฐาน และคอมโพเนนต์ในการปรับรุ่นที่สำคัญได้รับอนุญาตสำหรับการติดตั้ง

การหลีกเลี่ยงปัญหา

เมื่อต้องการแก้ไขปัญหานี้ ให้ใช้วิธีการอย่างใดอย่างหนึ่งต่อไปนี้

วิธีที่ 1:

เพิ่มAssemblyVersionแอตทริบิวต์ของแอสเซมบลีที่คุณพยายามติดตั้งเมื่อต้องการสร้างการติดตั้งแบบเคียงข้างกันในแคชแอสเซมบลีส่วนกลาง

วิธีที่ 2

การใช้เป็นตัวติดตั้ง Windows เขียนแก้ตารางมือเพื่อเปลี่ยน sequencing ของการกระทำ RemoveExistingProducts ใน InstallExecuteSequence ตารางที่จะเกิดขึ้นหลังจากการดำเนินการ InstallFinalize ตัวอย่าง ใช้ Orca.exe ฐานข้อมูลโปรแกรมแก้ไขตารางเพื่อสร้าง หรือแก้ไข Windows Installer แพคเกจ

ข้อมูลเพิ่มเติม

คุณสามารถสร้างแพ็คเกจ Windows Installer ในตัวการตั้งค่าและปรับใช้โครงการโครงการใน Microsoft Visual Studio .NET เมื่อการกระทำ RemoveExistingProducts คือ sequenced ในแพคเกจนี้ Windows Installer โปรแกรม ที่ตั้งเริ่มต้นของ RemoveExistingProducts การดำเนินการในตาราง InstallExecuteSequence เป็นสาเหตุของปัญหาที่อธิบายไว้ในส่วน "อาการ"

สำหรับข้อมูลเพิ่มเติม โปรดไปที่เว็บไซต์ของ Microsoft สำหรับนักพัฒนาเครือข่าย (MSDN) ต่อไปนี้:
Windows Installer
http://msdn2.microsoft.com/en-us/library/aa372866.aspx

การกระทำ RemoveExistingProducts
http://msdn2.microsoft.com/en-us/library/aa371197.aspx

ตาราง InstallExecuteSequence
http://msdn2.microsoft.com/en-us/library/aa369500.aspx

Orca.exe
http://msdn2.microsoft.com/en-us/library/aa370557.aspx

คุณสมบัติ

หมายเลขบทความ (Article ID): 905238 - รีวิวครั้งสุดท้าย: 19 ตุลาคม 2553 - Revision: 2.0
ใช้กับ
  • Microsoft Windows Installer 3.1
  • Microsoft Windows Installer 3.0
Keywords: 
kbwindowsinstaller kbinfo kbtshoot kbprb kbmt KB905238 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:905238

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com