1

Windows ストア アプリケーションを開発しています。この依存構造を持つライブラリを参照しようとしています:

  • unmanaged.dll
  • managedWrapper.dll (unmanaged.dll に依存)

私の Windows ストア アプリ プロジェクトからは、マネージ アセンブリ managedWrapper.dll しか参照できません。unmanaged.dll を参照しようとすると、「参照を追加できません」のようなエラーが発生します。

私のプロジェクトは正常にコンパイルされますが、実行時に managedWrapper.dll が unmanaged.dll を見つけられないため、ファイルが見つからないという例外が発生します。私はこの動作を期待していましたが、修正方法がわかりません。問題は、アプリケーションをデバッグしようとしていることですが、Visual Studio 2012 がそれをどのようにデプロイするのかわかりません。プロジェクトで明示的に managedWrapper.dll を参照することしかできないため、unmanaged.dll もアプリケーションの依存関係であることを Visual Studio に伝える方法はありません。Visual Studio がデバッグ時に Windows ストア アプリケーションを展開する方法がわからないので、問題を回避するために unmanaged.dll を手動でコピーする場所がわかりません。

また、デバッグ中にアプリの実際の作業ディレクトリを取得する方法がないように見えるため、unmanaged.dll をどこにコピーすればよいかわかりません。実行時に managedWrapper.dll が失敗することはありません。

以前にこの問題に遭遇した人はいますか?

4

1 に答える 1

2

unmanaged.dll をファイルとして Windows ストア アプリケーションに追加します。unmanaged.dll のビルド プロパティを Content に設定し、Copy to Output に設定してください。

これにより、dll が出力ディレクトリにコピーされます。

上記は機能するはずですが、managed.dll を参照する複数のプロジェクトがある場合は理想的ではない可能性があります。たとえば、managed.dll を参照する単体テスト プロジェクトもある場合は、上記の手順を実行し、それに unmanaged.dll も追加する必要があります。

于 2013-07-03T23:40:15.840 に答える