包括第三方DLL在UWP应用程序-一步一步

Including a third-party DLL in a UWP application - step by step?

本文关键字:一步 应用程序 第三方 DLL UWP 包括      更新时间:2023-10-16

我试图在Visual Studio 2017中的通用Windows平台应用程序中包含第三方DLL。具体来说,我从:http://usa.autodesk.com/adsk/servlet/pc/item?id=24746731&siteID=123112下载了Autodesk FBX SDK (Visual Studio 2015 UAP版本),其中包含我的平台的。lib和。dll文件。

我将相关的。lib (x86/release或x86/debug)添加到我在Visual Studio中的额外依赖项中,但我不确定如何使应用程序意识到DLL。构建应用程序包失败,并且尝试在运行时直接运行程序失败,可能是由于DLL加载失败。

我花了很多时间阅读关于UWP的资料,但是我完全被它的复杂性和不透明性所迷惑。我假设我需要:

  1. 将DLL复制到我的Visual Studio项目目录中。但是在哪里?我如何让Visual Studio承认它?我可以将其添加为解决方案资源管理器中文档类型的内容,但它似乎没有被构建拾取。

  2. 我已经被MS支持(https://social.msdn.microsoft.com/Forums/windowsapps/en-US/26013e5e-3ff1-44a0-8797-0474dabd12d0/including-dlls-in-a-uwp-application-in-visual-studio?forum=wpdevelop)告知,我需要将其作为包依赖项添加到包中。

只是要清楚:我没有这个DLL的源代码。很确定它是uwp构建的DLL。我只是希望它能被我的项目识别,并在我创建它时导出到应用程序包。是的,有一个静态库,我可以链接到工作,但迟早,我将需要一个只有dll的库,并将不得不学会得到正确的。我想在MSDN上有一个如何做到这一点的指南,但是几个小时的搜索没有任何结果:(

谢谢你,

巴特

Aman Sharma:谢谢。但是添加引用似乎不起作用(它不喜欢DLL文件)。然而,我确实设法使它工作如下:

  1. "Add -> Existing item…"到项目根目录
  2. 右键单击dll文件,选择"属性",将"内容"设置为"True",将该文件标记为内容。

就是这样。奇怪的是,FBXSDK文档声称必须定义FBXSDK_DLL,但这样做会导致编译失败。

另外,有点恼人的是,DLL文件必须在项目根目录下。它不能移动到子文件夹(说,资产/或DLL/或任何)。也许有办法在清单中指定路径?

无论哪种方式,简单地添加它并将其标记为内容不会在manifest文件中创建依赖项,正如我在MSDN论坛上被告知需要的那样。

我直接像下面这样编辑了项目文件(*.vcxproj)。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  ... other settings ...
  <ItemGroup>
    <Content Include="..PathTo$(PlatformTarget)-$(Configuration)some.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
</Project>

参见在Windows 10通用应用程序中引用C dll

当你在你的解决方案中添加一些第三方项目(dll,比如TreeViewControl)时,我自己就明白了。

你需要右键点击你的项目-> Add -> Reference,进入Projects, Solution,选中第三方项目名称左边的方框(在这个例子中是TreeViewControl),然后重新编译

相关文章: