我使用的是第三方.NET库,它本质上是c ++库的包装器。 这个库不是NuGet包。我只有用于不同体系结构(ARM,x86,x64)和托管库的C ++库。
我在项目中引用了托管库,我创建了Post-build事件,将正确的C ++库复制到构建目录:
xcopy / Y" $(ProjectDir)ExternalReferences \ NoesisGUI \ uwp _ $(平台)*。*" " $(TARGETDIR)"
我遇到的问题是,在部署时,此C ++库未复制到 AppX 文件夹,因此我得到 System.DllNotFoundException 。
在应用程序包中包含体系结构特定文件的正确方法是什么?
这是包含C ++库的项目文件夹结构:
答案 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;要使用父文件夹,请确保在将文件夹移动到其他位置时更改此内容!