2015-11-06 37 views
3

我试图将项目编译为UWP应用程序,以在安装了Windows 10 IoT的Raspberry Pi 2上进行部署。在Raspberry Pi上的Windows 10物联网UWP应用程序中使用ARM编译的DLL 2

该项目使用一个开放源代码框架,附带一个包装和一个DLL。

我已经将DLL重新编译为ARM,并将C#包装器放入我的项目中。

我已经使用到MainPage.xaml.cs中并使用了包装器/ DLL中的函数。

我使用FTP将编译后的DLL文件复制到RPi2上的C:\ Users \ Public中,并使用ICACLS将DLL设置为可供所有人访问。

当我运行通过远程调试我的应用程序得到:

其他信息:无法加载DLL 'C:\用户\公用\ snap7.dll':访问被拒绝。 (异常来自HRESULT :0X80070005(E_ACCESSDENIED))

就是我想用DLL文件做在Windows物联网可能吗?

+0

请记住,C#包装必须编译为AnyCPU。 – osexpert

+0

您是否使用VS2015 Visual C++“空白Windows IoT Core控制台应用程序”模板并将配置类型更改为动态链接库(.dll)? – osexpert

+0

我遇到了完全相同的问题。我的溶剂是将dll添加到溶剂探测器。设置属性的DLL:“复制到输出目录”,“复制如果更新”然后当我打电话的DLL,我没有得到访问被拒绝的错误。你必须找到部署目录。我在“C:\ Data \ Users \ DefaultAccount \ AppData \ Local \ DevelopmentFiles \” –

回答

1

我想你会以错误的方式去做。您不应该需要执行以下步骤:

我使用FTP将RPi2上编译的DLL文件复制到C:\ Users \ Public,并使用ICACLS将DLL设置为可供所有人访问。

只需将DLL添加到您的项目中,就像您所做的一样,并将其设置为“Copy Local = true”就足够了。部署时,DLL会自动复制到bin文件夹中。

+0

当我尝试将编译的DLL添加到项目我得到“..不能添加,请确保文件可以访问,这是一个有效的程序集或COM组件。”我将其添加为参考,这是正确的方法吗? – Nick

+0

此外,DLL是用C++编写的,因此不能直接作为参考添加到C#或VB项目中。有没有办法解决。 – Nick

+0

您可以找到一种方法在UWP应用程序中导入非托管C++ dll,或者在C++库中创建托管包装程序,以便您可以在VS中添加引用。无论哪种方式,它需要一个新的问题 – vidalsasoon

1

通常,本机DLL不能与UWP应用程序一起使用。还请仔细查看未使用IoT-Core实施的API。 有这方面的工具。

相关问题