2011-01-21 14 views
2

私のXBAPアプリケーションでは、2つのwin32 dllと通常は多くの.Net dllが使用されます。 .net参照をプロジェクト自体に追加するので、プロジェクトを公開するときに自動的に展開されるため、問題はありません。その名前がmydotnet.dllからmydotnet.dll.deployに変更されるだけです。win32 DLLを使用したXBAPのデプロイ

しかし、問題は、win32のDLLが展開されず、名前が変更されないということです。私はその理由を理解しています。私はp/invoke技術を使って呼び出すので、プロジェクトには追加されません。実際、Visual Studio 2010では参照に追加することはできません。だから私は手動でそれらをpublish-folderにコピーし、それがうまくいけば実験を試みました。しかし、それは動作しませんでした。

System.DllNotFoundException: ロードDLL「Player.dll」にできません:指定された モジュールが見つかりませんでしたエラーブラウザは示しては、これです。 (HRESULTからの例外 :0x8007007E)Player.PlayerProxy.Initialize()
atRunaware.WpfBrowserApp.Player.Page1.PlayFile(オブジェクト 送信者、RoutedEventArgs e)に

は誰も私を説明することができるものやっている?そして、それに対する解決策はありますか?


以前私はSilverlightでやりたいしようとしていたが、Austinは同じことを達成するためにXBAPを使用するように私を示唆しました。前のトピックへURL:

Handle to Silverlight UserControl

+0

クライアントマシンにはVisual Studioランタイムバイナリがインストールされていますか?ネイティブDLLの依存関係を調べて、他に何かを展開する必要があるかどうかを確認します。 –

答えて

1

はあなたが試すことができ:あなたのネイティブのDLLは、それらが設定されていることを確認すること、そこに表示された場合

  1. が公開>アプリケーションファイルのセクションの下に、プロジェクトのプロパティを確認すると、含める。

  2. dllをプロジェクトにコピーし、出力ディレクトリを[常にコピー]に設定してプロジェクトに含めるようにしてください(ポイント1に記載されている参照リストに表示される可能性があります。含む ")。

+0

いいえ。ネイティブDLLはそこに表示されません。 .net dllだけがあり、 'Publish Status'は' Include(Auto) 'です。 – Nawaz

+0

プロジェクトを右クリックし、ネイティブdllごとに既存アイテムを追加します。次に、それらが追加されたら、それぞれを選択して、コンテンツを[コンテンツとしてビルド]を選択し、[常にコピーとして出力ディレクトリにコピー]を選択します。それらはプロジェクトプロパティの[アプリケーションファイル]セクションに表示されるので、それらが[含める]に設定されていることを確認できます。 – Jeff

+0

@ Jeff825:同じことをやろうとしています(リモートサーバーとの相互運用のためのカスタムDLLを持つXBAP、現在は共有パブリックフォルダを使用して展開しています)。ローカルで実行されますが、ローカルネットワーク内の別のマシンからは実行されません。エラーはSystem.DllNotFoundExceptionです:DLL(Exception 0x8007007E)を読み込めません。言ったことを正確に行う - 私はマニフェストがdllを含んでいるのを見ることができます、リモートマシンへのデータ転送でさえ、IEブラウザはdllのサイズによって大きくなります!しかし、行かない! –

関連する問題