3

という名前のコード ビハインド dll を含む MS-Word VSTO ドキュメントがあります。WordDocument1.dll

プロジェクト フォルダー D:\Work\Seven\WordAutomation\ContentControls\WordDocument1\bin\Debugその下のフォルダー
にいくつかのカスタム コードをコピーしました。MyAppExecsDLL には、コード内のコードにMyAppExecs到達できるように指定されたプライベート ビン パスがあります。

そのため、起動時に、ダイアログをポップアップするフォルダーStarter.DLLにロードします。MyAppExecsただし、ダイアログのボタンをクリックすると、X.DLL管理されていない依存関係を持つ をロードする必要があります。(X.DLLマネージ C++ がいくつかあり、追加の依存関係として指定されたライブラリがいくつかあります。X は署名されておらず、プライベート アセンブリであり、GAC ではありません)

ただし、X.DLL は解決できません。fuslogvwツールから、この DLL を Office12 フォルダーにロードしようとして失敗していることがわかります。私もProcMon実行していますが、管理されていない依存ファイルが見つからないというエラーは表示されません。

  • に存在する X.Dll を Word Executable に表示させるにはどうすればよいD: \Work\Seven\WordAutomation\ContentControls\WordDocument1\bin\Debugですか?

Starter.DLLまた、 で問題なくロードできる{ProjFolder}\MyAppExecsのに、 でファイルが表示されないのは奇妙に思えます{ProjFolder}

fuslogvw出力は次のとおりです。

*** Assembly Binder Log Entry  (12/9/2008 @ 6:10:06 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:\Program Files\Microsoft Office\Office12\WINWORD.EXE
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = GEIPS-EURO\PillaiGi
LOG: DisplayName = MyNamespace.X, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5574221fffc7dcd4
 (Fully-specified)
LOG: Appbase = file:///C:/Program Files/Microsoft Office/Office12/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = NULL
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: No application configuration file found.
LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Post-policy reference: MyNamespace.X, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5574221fffc7dcd4
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Office/Office12/MyNamespace.X.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Office/Office12/MyNamespace.X/MyNamespace.X.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Office/Office12/MyNamespace.X.EXE.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Office/Office12/MyNamespace.X/MyNamespace.X.EXE.
LOG: All probing URLs attempted and failed.

Update#1 : 症状は解決しましたが、問題の原因を特定できませんでした。Assembly.load を介してアセンブリを手動でロードしました。ただし、上記のアセンブリ解決エラーがログに記録され続け、機能しませんでした。最後に、必死に{ProjFolder}\MyAppExecsなって、すべての DLL が 1 つのフォルダーに格納され、機能するように、Word プロジェクトの DLL をコピーしました。

から実行すると、管理されていない依存関係X.dllが解決されていないように見えますが{ProjFolder}...ProcMonその兆候は見られません。PATH 変数も更新して include を含めまし{ProjFolder}\MyAppExecsたが、うまくいきませんでした。

したがって、すべてを1つのフォルダーにコピーするとうまくいきました。X.dll私のコードではないので、これ以上調べることはできませんでした。

4

0 に答える 0