如何在Windows应用商店应用中包含非托管引用

时间:2013-07-03 23:17:55

标签: windows microsoft-metro windows-store-apps

我正在开发Windows应用商店应用。我试图引用具有此依赖关系结构的库:

  • unmanaged.dll
  • managedWrapper.dll(取决于unmanaged.dll)

在我的Windows Store App项目中,我只能引用托管程序集managedWrapper.dll。如果我尝试引用unmanaged.dll,我会收到错误,类似于“无法添加引用”。

我的项目编译正常,但在运行时我得到一个文件未找到异常,因为managedWrapper.dll找不到unmanaged.dll。我有点期待这种行为,但不知道如何解决它。问题是我正在尝试调试我的应用程序,但我不知道Visual Studio 2012如何部署它。我只能在我的项目中显式引用managedWrapper.dll,因此无法告诉Visual Studio unmanaged.dll也是我的应用程序的依赖项。由于我不知道Visual Studio在调试时如何部署我的Windows应用商店应用程序,我不知道在哪里手动复制unmanaged.dll以解决问题。

此外,似乎没有办法在调试时获取我的应用程序的实际工作目录,所以我再也不知道将unmanaged.dll复制到何处,因此managedWrapper.dll在运行时不会失败。

之前有没有人遇到过这个问题?

1 个答案:

答案 0 :(得分:2)

将unmanaged.dll作为文件添加到Windows应用商店应用程序中。确保将unmanaged.dll的构建属性设置为Content,并将其设置为Copy to Output。

这应该将dll复制到输出目录。

以上内容应该可行,但如果您有多个引用managed.dll的项目,则可能不太理想。例如,如果您还有一个引用managed.dll的单元测试项目,则必须执行上述操作并向其添加unmanaged.dll。