1

我正在开发一个 Windows 应用商店应用程序。我正在尝试引用具有此依赖结构的库:

  • 非托管的.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 在运行时不会失败。

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

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 回答