概念実証として、ダミー DLL を共有サイド バイ サイド アセンブリとしてインストールしようとしています。
埋め込みバージョン情報リソースで .dll を作成し、マニフェストと .cat ファイルを作成し、InstallAssembly() に sxs.dll 機能を使用しましたが、この関数は 0x800736FD (ERROR_SXS_UNTRANSLATABLE_HRESULT:HRESULT を対応する Win32 エラー コードに変換できませんでした) を返し続けました。 )。
(私はhttp://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/90f09d5b-0c37-47a7-8ff1-11a16e691987の「パート 1」の手順に従いました。 2007 10:25 AM、MSDN の指示に厳密に従いますhttp://msdn.microsoft.com/en-us/library/aa374228%28v=vs.85%29.aspx )
編集: 解決策 コードは Windows XP では機能しますが、Vista および Windows 7 ではこのエラーで失敗することがわかりました。sxs.dll をデバッグして、COM 関数がエラー 0x800401F0 (CO_E_NOTINITIALIZED:CoInitialize が呼び出されていない) を返していることを確認しました。 .) CoInitialize(0) 呼び出しを追加すると、すべてが機能します。