हमने एक ऐसा उत्पाद विकसित किया है जो एक मानक वीएसटीओ एडिन (वर्ड 2010 और वर्ड 2013, केवल x86) है। डिफ़ॉल्ट रूप से स्थापित होने पर, यह सभी उपयोगकर्ताओं के लिए स्थापित किया जाता है (यानी एडिन रजिस्ट्री प्रविष्टियां HKLM - HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node]\Microsoft\Office\Word\Addins
में डाली जाती हैं)।एमएस ऑफिस वर्ड वीएसटीओ "मांग पर लोड"
LoadBehavior
reg कुंजी के लिए मूल्य 0x3
पर सेट होने पर (यानी "स्टार्टअप पर लोड"), ऐड काम करता है बिल्कुल ठीक, लेकिन हम 0x10
को LoadBehavior
के लिए मान सेट जब (यानी "मांग पर लोड"), जैसा कि हम उम्मीद करेंगे ऐड काम नहीं करता:
कारण यूएसी (और उस पद ऊंचा नहीं चलता है), HKLM में LoadBehavior
का मूल्य एक LoadBehavior
कुंजी बनाने के द्वारा 0x9
को 0x10
से बदल नहीं है, लेकिन इसके बजाय ओवरराइड की गई है (करने के लिए एचकेसीयू हाइव में मूल्य 0x9
) के साथ।
दुर्भाग्य से, हम मिल गया है जब तक प्रकट कुंजी LoadBehavior
) के साथ HKCU छत्ता में मौजूद है कि इस HKCU ओवरराइड मूल्य खाते नहीं किया जाता है। https://social.msdn.microsoft.com/Forums/vstudio/en-US/3776734b-333e-423b-9c08-7c7a441c3e94/load-behavior-and-word-addin?forum=vsto
इस समस्या के लिए 'स्पष्ट' उपाय प्रत्येक उपयोगकर्ता के लिए HKCU में Manifest
लिखने के लिए (HKLM में के रूप में भी) है, जब प्रत्येक उपयोगकर्ता ऐड चलाने समय या स्थापित है: यह संबंधित धागा बारे में अधिक जानकारी पहली बार। इस तरह के सक्रिय सेटअप उपयोग करने की आवश्यकता के रूप में
- ऐड की स्थापना रद्द करने की आवश्यकता है उन लोड हो रहा है समस्याओं का सामना कर (यह अनुशंसित नहीं है को रोकने के लिए हर उपयोगकर्ता HKCU मूल्यों को दूर करने और अन्य मुद्दों/जटिलताओं बन गया है: वहाँ इस दृष्टिकोण के साथ तथापि कुछ गंभीर कमियां हैं - Remove registry keys under HKCU on a per machine installation)।
- उपयोगकर्ता जिनके पास इन मूल्यों को उनके (रोमिंग) एचकेसीयू हाइव में है, वे एक ही डोमेन में मशीन पर लॉगिन करते समय समस्याएं अनुभव करते हैं, जिनमें हमारे एडिन इंस्टॉल नहीं होते हैं।
यह एक बग है कि प्रकट HKLM जहां LoadBehavior
HKCU में उचित रूप से सेट किया गया है से प्राप्त नहीं है? मुझे लगता है कि एचसीएलएम में LoadBehavior
को Manifest
मूल्य को ओवरराइड करने की आवश्यकता के बिना एचकेसीयू में ओवरराइड किया जा सकता है, तो यह समस्या हल हो जाएगी।
कोई भी इस मुद्दे को दूर करने के तरीके के बारे में जानता है?
इस @ डार्क-वोल्मार के लिए धन्यवाद। बस स्पष्ट करने के लिए, 'LoadOnDemand' का उपयोग करने के पीछे मुख्य कारण यह नहीं है क्योंकि हमारे पास धीमी ऐड-इन है, लेकिन ऐसा इसलिए है क्योंकि हमारे पास बहुत सारे और बहुत से ऐड-इन्स हैं जो सभी व्यवसाय महत्वपूर्ण हैं। ये संसाधनों के लिए प्रतिस्पर्धा करते हैं और अक्सर "संघर्ष" और एक ही समय में लोड होने पर त्रुटि। हां हमें ऐसी दुनिया में रहना है जहां हम दूसरे के ऐड-इन्स नहीं बदल सकते हैं, और जब आपके पास जितने अधिक ग्राहक हैं, तो आप उन्हें अपने भार को बेहतर बनाने के लिए नहीं कह सकते हैं। – RoKa