C# 通用应用程序互操作Dll和内容文件 我有一个C++ DLL名为:分析。DLL< /Cord>,我已经成功地使用 dLimPult属性包装它。
此Dll以某种方式加载名为C# 通用应用程序互操作Dll和内容文件 我有一个C++ DLL名为:分析。DLL< /Cord>,我已经成功地使用 dLimPult属性包装它。,c#,dll,uwp,interop,C#,Dll,Uwp,Interop,此Dll以某种方式加载名为analysis.sys的文件,该文件包含许可证密钥 我已将我的两个dll添加到我的UWP项目中,并设置了以下选项: analysis.dll 构建操作:Content 复制到输出目录:如果较新,则复制 analysis.sys 构建操作:Content 复制到输出目录:如果较新,则复制 主要问题是加载了analysis.dll,我们可以使用包装器提供的方法(使用DllImport),但此dll无法加载analysis.sys文件 我用一个WPF应用程序做了
analysis.sys
的文件,该文件包含许可证密钥
我已将我的两个dll添加到我的UWP项目中,并设置了以下选项:
analysis.dll
- 构建操作:
Content
- 复制到输出目录:
如果较新,则复制
- 构建操作:
analysis.sys
- 构建操作:
Content
- 复制到输出目录:
如果较新,则复制
- 构建操作:
analysis.dll
,我们可以使用包装器提供的方法(使用DllImport
),但此dll无法加载analysis.sys
文件
我用一个WPF应用程序做了这个测试,它工作得非常好
为什么它不适用于UWP?我遗漏了什么吗?您的UWP包只能包含应用程序代码,不能包含系统代码。它无法将驱动程序部署到用户系统,因为安装程序需要能够在没有提升的情况下运行。谢谢您的回答。
analysis.sys
文件更像一个文本文件,其中存储了dll的许可证密钥。可能dll做了一些需要previlege提升的事情?确切的故障点是什么?错误消息/代码是什么?你说你不能加载analysis.sys。如何尝试加载它?简单来说,DLL需要SYS文件才能工作。因为sys文件包含许可证密钥。我假设DLL加载SYS键,因为如果删除此文件,我的WPF测试应用程序将不再工作。关键是,当我的WPF测试应用程序有这两个文件时,它工作得很好。删除SYS文件,它就不再工作了。在UWP上尝试了同样的方法,即使是SYS文件也不起作用。如何加载该文件?部署一个读取文本文件的应用程序可以很好地工作,但是如果通过部署和运行驱动程序代码来完成,那么按照设计,它在UWP应用程序中不起作用。您肯定可以从UWP加载本地文件,但UWP应用程序容器中的某些详细信息和策略是不同的。一些API不受支持,一些假设(例如关于当前目录的假设)可能不正确,等等。这都是猜测,因为他们不知道自己的代码,但底线是他们需要在UWP上下文中进行测试,并进行代码调整,以符合应用程序容器规则。