首页 文章

在UWP应用程序包中包含特定于体系结构的文件

提问于
浏览
2

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

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

xcopy / Y“$(ProjectDir)ExternalReferences \ NoesisGUI \ uwp _ $(Platform)* . *”“$(TargetDir)”

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

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

这是带有C库的项目文件夹结构:

Project folder structure with C++ libraries

1 回答

  • 0

    有更简单地将's no need for scripting, it'添加为项目的 Content .

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

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

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

    这将包括项目中的Noesis.dll文件,考虑到它当前正在构建的平台 .

    Note: 上面我使用了".."来使用父文件夹,如果你把文件夹移到其他地方,请务必更改它!

相关问题