Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通用应用程序互操作Dll和内容文件 我有一个C++ DLL名为:分析。DLL< /Cord>,我已经成功地使用 dLimPult属性包装它。_C#_Dll_Uwp_Interop - Fatal编程技术网

C# 通用应用程序互操作Dll和内容文件 我有一个C++ DLL名为:分析。DLL< /Cord>,我已经成功地使用 dLimPult属性包装它。

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应用程序做了

此Dll以某种方式加载名为
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上下文中进行测试,并进行代码调整,以符合应用程序容器规则。