在UWP应用程序包

时间:2017-04-12 07:11:41

标签: .net visual-studio uwp

我使用的是第三方.NET库,它本质上是c ++库的包装器。 这个库不是NuGet包。我只有用于不同体系结构(ARM,x86,x64)和托管库的C ++库。

我在项目中引用了托管库,我创建了Post-build事件,将正确的C ++库复制到构建目录:

  

xcopy / Y" $(ProjectDir)ExternalReferences \ NoesisGUI \ uwp _ $(平台)*。*" " $(TARGETDIR)"

我遇到的问题是,在部署时,此C ++库未复制到 AppX 文件夹,因此我得到 System.DllNotFoundException

在应用程序包中包含体系结构特定文件的正确方法是什么?

这是包含C ++库的项目文件夹结构:

Project folder structure with C++ libraries

1 个答案:

答案 0 :(得分:0)

不需要编写脚本,只需将其添加为项目的Content即可。

首先,将ExternalReferences文件夹移到项目之外。父文件夹(默认情况下是.sln文件的位置)应该可以。

手动编辑.csproj文件,并在结束</Project>标记之前添加以下内容:

<ItemGroup>
  <Content Include="..\ExternalReferences\NoesisGUI\uwp_$(Platform)\Noesis.dll">
    <Link>Noesis.dll</Link>
  </Content>
</ItemGroup>

这将包括项目中的Noesis.dll文件,同时考虑到它正在为其构建的平台。

注意:以上我使用&#34; .. \&#34;要使用父文件夹,请确保在将文件夹移动到其他位置时更改此内容!