2010-01-14 26 views
17

मैंने एक WPF/C# प्रोग्राम बनाया है और मैं WYSIWYG HTML संपादन के लिए इंटरनेट नियंत्रण का उपयोग कर रहा हूं।फ़ाइल या असेंबली 'Microsoft.mshtml लोड नहीं हो सका ... मजबूत नाम सत्यापन विफल रहा

यह एक नियमित निष्पादन योग्य कार्यक्रम है।

यह अधिकांश कंप्यूटरों पर काम करता है हालांकि कुछ कंप्यूटर मुझे निम्न त्रुटि दे रहे हैं।

फ़ाइल या विधानसभा 'Microsoft.mshtml, संस्करण = 7.0.3300.0, संस्कृति = तटस्थ, PublicKeyToken = b03f5f7f11d50a3a' या अपनी निर्भरता से एक लोड नहीं कर सका। मजबूत नाम सत्यापन विफल रहा।

'Microsoft.mshtml.dll' फ़ाइल प्रोग्राम के साथ वितरित की जाती है। यह exe फ़ाइल के समान फ़ोल्डर में अन्य सभी आवश्यक डीएलएस के साथ है।


यहाँ से Fuslogvw

*** Assembly Binder Log Entry (1/14/2010 @ 6:36:51 PM) *** 

The operation failed. 
Bind result: hr = 0x80070002. The system cannot find the file specified. 

Assembly manager loaded from: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll 
Running under executable C:\Documents and Settings\office\Desktop\Database\DATABASE.exe 
--- A detailed error log follows. 

=== Pre-bind state information === 
LOG: User = CAMPUSREMOTE\office 
LOG: DisplayName = Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
(Fully-specified) 
LOG: Appbase = file:///C:/Documents and Settings/office/Desktop/Database/ 
LOG: Initial PrivatePath = NULL 
LOG: Dynamic Base = NULL 
LOG: Cache Base = NULL 
LOG: AppName = DATABASE.exe 
Calling assembly : ChabadOnCampusMainFrontEnd, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. 
=== 
LOG: Start binding of native image Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a. 
WRN: No matching native image found. 

धन्यवाद

उत्तर

19

सत्यापित करें कि प्रोग्राम के साथ वितरित 'Microsoft.mshtml.dll' फ़ाइल पीआईए फ़ाइल है और Office फ़ाइल नहीं है। कुछ साइटें दावा करती हैं कि Office फ़ाइलें "देरी पर हस्ताक्षर" हैं और पीआईए फ़ाइल (वीएस स्थापना के साथ स्थापित) एक हस्ताक्षरित प्रति है।

  1. "c:: \ Program Files \ Microsoft Visual Studio 9.0 \ दृश्य स्टूडियो अपने कंप्यूटर पर मैं 'Microsoft.mshtml.dll' फ़ाइल के 3 अलग अलग संस्करणों, (एक ही फाइल आकार, लेकिन अलग अलग सामग्री है) \ Program Files \ Microsoft Visual Studio 9.0 \ दृश्य स्टूडियो कार्यालय \ पिया \ Office12 \ Microsoft.mshtml.dll के लिए उपकरण "

  2. : कार्यालय \ पिया \ Office11 \ Microsoft.mshtml.dll"

  3. "ग के लिए उपकरण

  4. "सी: \ प्रोग्राम फ़ाइलें \ माइक्रोसॉफ्ट.NET \ प्राथमिक इंटरऑप असेंबली \ Microsoft.mshtml.dll"

प्रोजेक्ट से "Microsoft.mshtml.dll" संदर्भ निकालें। "संदर्भ जोड़ें", ".Net" टैब का उपयोग करें, पीआईए फ़ाइल का चयन करें, "कॉपी लोकाल" विकल्प का उपयोग करें। (यह मेरे लिए काम किया ...)

Atara

+0

बी 'एच में परिणाम तैनात धन्यवाद। है कि मैं मूल रूप से क्या पता लगा। कुछ कैसे डेला y हस्ताक्षरित डीडीएल वह है जो प्रोजेक्ट में जोड़ा जाता है और वितरित हो जाता है हालांकि मेरी स्थानीय मशीन पर .NET रनटाइम ने हस्ताक्षर किए एक को भी लिया क्योंकि यह पीआईए में था। तो जैसे ही आप पीआईए से एक को वितरित करते हैं, सभी संभावनाएं दूर जाती हैं। – Rabbi

+0

अटारा आपका उत्तर स्पॉट पर था, धन्यवाद, आपने मुझे काम के घंटे बचाए, धन्यवाद !!! और धन्यवाद stackoverflow !! –

+0

अगर कोई "स्थानीय कॉपी करें" को सक्षम नहीं कर सकता है, तो आपको गलत पर "एम्बेड इंटरप प्रकार" सेट करना होगा। (बस इसमें भाग गया) – Lyra

2

इस मुद्दे पर नज़र रखने के लिए पहला कदम है, तो यह वास्तव में Mcirosoft.mshtml.dll है या इसे से एक निर्भरता है निर्धारित करने के लिए है उत्पादन होता है। ऐसा करने का सबसे अच्छा तरीका असेंबली लोड विफलता को ट्रैक करने के लिए fuslogvw का उपयोग करना है। यह असेंबली असफल होने के बारे में विस्तृत जानकारी प्रदान करेगा।

एक बार जब आप जो विधानसभा विफल हो रहा है deterimen, परिणामों के साथ वापस पोस्ट करें।

संपादित

चेतावनी संदेश से पता चलता है कि आपरेशन के अंत में सफल रहा। इसमें कोई त्रुटि नहीं दिखती है।

+0

मैं मूल पोस्ट – Rabbi

1

मैं भी इस एक ही समस्या थी, लेकिन मेरी समस्या TFS का निर्माण 2008 hintpath रिश्तेदार था और सही पथ के लिए बदल किया जा सकता था उपयोग कर रहा था। निर्माण यह कार्यालय उठा रखा दौरान अन्यथा

<HintPath>..\..\..\..\..\..\..\..\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll</HintPath>

<HintPath>C:\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll</HintPath> 
3

पिया से Microsoft.mshtml.dll फ़ोल्डर हस्ताक्षरित नहीं है mshtml.dll।
यदि आपने प्रोजेक्ट पर हस्ताक्षर किए हैं, तो आपको "प्राथमिक इंटरॉप असेंबली" फ़ोल्डर से संस्करण लेना होगा।


कि ऐसा करने के लिए:

1. Microsoft.mshtml के लिए निकालें संदर्भ

2. क्लिक करें (यदि आप अपने प्रोजेक्ट में से एक है) "संदर्भ जोड़ें" और की तुलना में चयन न करें "एक्सटेंशन" लेकिन "ब्राउज़" और "सी: \ प्रोग्राम फ़ाइलें (x86) \ Microsoft.NET \ प्राथमिक इंटरऑप असेंबली" (.64 बिट मशीनों के लिए) पर इंगित करें - वह संस्करण हस्ताक्षरित है।

3. संपादित करें गुण (microsoft.mshtml संदर्भ और F4 दबाएं चुनें) क्रम में स्थापित करने के लिए:

एम्बेड Interop प्रकार = false
कॉपी स्थानीय = सच


4. पुनर्निर्माण अपनी परियोजना

संबंधित मुद्दे