ปัญหาการอ้างอิงแอสเซมบลี Add-in ของ Clickonce เมื่อปรับใช้

ฉันได้พัฒนา Add-in ของ Office 2007 C# แล้ว มันใช้การคลิกครั้งเดียวสำหรับการปรับใช้ ในระบบที่มี Office 2010 ทุกอย่างใช้ได้ แต่บนเครื่องที่มี XP SP3, NET 3.5sp1 และ Office 2007 ฉันได้รับข้อผิดพลาดในการโหลดแอสเซมบลีแปลกๆ

Add-in ของฉันไม่ได้อ้างอิงถึง Microsoft.Office.Interop.SmartTag.dll โดยตรง สิ่งนี้ได้รับการอ้างอิงโดย Microsoft.Office.Tools.Commmon.v9.0.dll - ซึ่งถูกอ้างอิงใน Add-in ของฉัน

เมื่อติดตั้ง Add-in ด้วยการคลิกเมื่อมีข้อผิดพลาดรายงานว่าไม่พบ Microsoft.Office.Interop.SmartTag.dll ในโฟลเดอร์การติดตั้งในเครื่องของ Add-in ของฉัน ทั้ง Microsoft.Office.Tools.Commmon.v9.0.dll และ Microsoft.Office.Interop.SmartTag.dll อยู่ใน GAC โดยมีเวอร์ชันที่ถูกต้อง

ฉันได้ใช้ Reflector เพื่อลองตรวจพบปัญหา แต่สามารถแก้ไขการอ้างอิง Microsoft.Office.Interop.SmartTag.dll ได้อย่างง่ายดายโดยการค้นหา DLL ใน GAC

อะไรคือสาเหตุที่เป็นไปได้ที่ทำให้การติดตั้ง Clickonce ของฉันล้มเหลว มีแอสเซมบลีที่จำเป็นอยู่ แต่ไม่ได้ปรึกษา GAC อย่างชัดเจน

ฉันพบว่าการเพิ่ม |vstolocal ลงในค่ารีจิสทรี Manifest ทำให้ทุกอย่างทำงานได้ตามที่คาดไว้ แต่ฉันก็ยังสงสัยว่าเหตุใดฉันจึงได้รับข้อผิดพลาดตั้งแต่แรก


person wpfwannabe    schedule 08.08.2010    source แหล่งที่มา


คำตอบ (1)


คุณกำลังปรับใช้ PIA เป็นข้อกำหนดเบื้องต้นในการปรับใช้และ VSTO Runtime หรือไม่

person RobinDotNet    schedule 08.08.2010
comment
VSTO - ใช่ PIA - ไม่ ปรากฎว่า Office 2007 ไม่จำเป็นต้องใช้ PIA เนื่องจากมีการติดตั้งไว้แล้วในการติดตั้งทั่วไป อย่างไรก็ตาม นี่ไม่ใช่ปัญหาเนื่องจากระบบเฉพาะได้รับการติดตั้งข้อกำหนดเบื้องต้นทั้งหมดไว้แล้ว - person wpfwannabe; 08.08.2010
comment
คุณไม่สามารถเชื่อถือ PIA ที่ติดตั้งอยู่แล้วเพียงเพราะติดตั้ง Office 2007 ได้ นี่เป็นเรื่องจริงกับ Office 2010 แต่ไม่ใช่ 2007 เพียงแค่แจ้งให้ทราบ - person RobinDotNet; 09.08.2010
comment
คุณช่วยอธิบายให้ละเอียดหน่อยได้ไหมว่าทำไมฉันถึงใช้ PIA ที่ติดตั้งไว้ล่วงหน้าไม่ได้ หลังจากเพิ่ม |vstolocal ส่วนเสริมของฉันทำงานได้ตามที่คาดไว้ ทุกอย่างถูกติดตั้งไว้แล้ว - person wpfwannabe; 09.08.2010