6

スペルチェックには次のコードを使用しました。

実行中、DLLFileNotFound例外が発生します。

「HunspellIntel32ビットDLLが見つかりません:C:\ project \ splee\Hunspellx86.dll」。

コードスニペット:

using (Hunspell hunspell = new Hunspell("en_us.aff", "en_us.dic")) 
    { 
        bool correct = hunspell.Spell("Recommendation"); 
        var suggestions = hunspell.Suggest("Recommendation"); 
        foreach (string suggestion in suggestions) 
        { 
            Console.WriteLine("Suggestion is: " + suggestion); 
        } 
    } 

    // Hyphen 
    using (Hyphen hyphen = new Hyphen("hyph_en_us.dic")) 
    { 
        var hyphenated = hyphen.Hyphenate("Recommendation"); 
    } 


    using (MyThes thes = new MyThes("th_en_us_new.idx", "th_en_us_new.dat")) 
    { 
        using (Hunspell hunspell = new Hunspell("en_us.aff", "en_us.dic")) 
        { 
            ThesResult tr = thes.Lookup("cars", hunspell); 
            foreach (ThesMeaning meaning in tr.Meanings) 
            { 
                Console.WriteLine("  Meaning: " + meaning.Description); 
                foreach (string synonym in meaning.Synonyms) 
                { 
                    Console.WriteLine("    Synonym: " + synonym); 

                } 
            } 
        } 

私はプロジェクトで言及しHunspell.dllました。何が問題なのですか?

4

5 に答える 5

5

Hunspellx86.dllmanaged の隣にnative を含める必要がありますNHunspell.dll

私は次の方法で行いました:

  1. 参照NHunspell
  2. コピー ローカル プロパティを設定する
  3. NHunspellx86.dllプロジェクトに を含める
  4. 「出力ディレクトリにコピー」プロパティを「新しい場合はコピー」に設定します。

これにより、ネイティブの Hunspell.dll が配置されます。

于 2010-12-26T19:19:20.057 に答える
3

NHunspell v 0.9.4 を使用して、2 つの異なるシナリオでこのエラーを再現しました。NHunspell は、関連する管理されていない Hunspellx**.dll をロードするプロセス中に発生する可能性のあるさまざまな問題に対して、このエラー メッセージを表示しているようです。

私が見つけた最初の原因は、Web アプリケーションを実行している特定の IIS アプリケーション プールで 32 ビット アプリケーションが有効になっていないことでした。もちろん、これは 64 ビット マシンで 32 ビット Web アプリケーションを実行している場合にのみ関係します。

私が見つけた 2 番目の原因は、IIS プロセス ユーザーが Hunspellx**.dll を含むフォルダーを読み取るための適切なアクセス許可を持っていなかったことです。IIS ユーザー (MACHINENAME\IIS_IUSRS などと呼ばれるグループ) には、webapp 実行ディレクトリ (および bin サブフォルダー) 内のすべてのファイルを読み取り、実行する権限が必要です。

于 2011-10-21T06:37:45.337 に答える
1

ソリューション エクスプローラーで NHunspell.DLL を右クリックしたときに、[ローカルにコピー] 設定が [常にコピー] に設定されていることを確認します。

于 2010-07-15T18:49:01.197 に答える
0

アンマネージ DLL のバージョンが、ASP.Net プロジェクトがビルドされたバージョンよりもわずかに古い場合、実稼働環境でこの問題が発生しました。

具体的には、FusLogVw は次のことを示しました。

LOG: Assembly download was successful. Attempting setup of file: C:\ThePath\Hunspellx64.dll
LOG: Entering download cache setup phase.
ERR: Error extracting manifest import from file (hr = 0x80131018).
ERR: Setup failed with hr = 0x80131018.
ERR: Failed to complete setup of assembly (hr = 0x80131018). Probing terminated.

アンマネージ DLL を正しいバージョンに更新すると、問題が解決しました。

于 2013-06-13T04:33:16.077 に答える