我正在开发一个 Windows 应用商店应用程序项目,我想在其中从 National Instruments DAQ 读取简单的温度测量数据。但是,DAQ 的 DLL 库采用 .NETFramework 4.0 格式,当将其添加为对我的 Windows 应用商店应用程序项目的引用时,出现以下错误:“项目目标为‘.NetFramework’,而文件引用目标为‘.NetCore '"
在网上搜索,我发现 Windows 应用商店应用程序必须使用对另一个 .NETCore 或可移植库二进制文件的引用,它不能引用完整的 .NET 4.0 库。估计有很多人有类似的问题,不知道有没有什么绕过的技巧?
最佳答案
如果您坚持使用其他人提供的库,并且尝试游说他们制作可移植版本的尝试不太可能成功,那么您唯一能做的就是找到其他地方来托管 DLL,然后与托管它的任何东西进行通信。例如,对于某些场景,可以编写一个基于 ASP.NET Web API 的服务,该服务将能够使用完整的 .NET Framework,从而能够使用 DLL。
显然,这是一个问题,另一个问题:您现在需要一台可以为您运行 Web 服务的机器。 (不幸的是,我相信 Microsoft 不正式支持在运行 Windows 应用商店应用程序的同一台机器上运行该 Web 应用程序。您可以让它在您的开发箱上运行,但您将无法部署Web 应用程序本身通过 Windows 应用商店。)
这里没有简单的路径 - 您必须编写一个层来公开您通过 HTTP 服务所需的一切,以及使用这些服务的客户端代码。您还需要考虑如何确保对服务的访问安全。
向您的供应商求情可能更容易...
理论上,如果碰巧库没有使用核心 .NET 配置文件之外的任何内容,那么您可以使用 ILDASM 和 ILASM 反编译和重新编译代码,将其转换为可移植库在这样做之前。但是,如果它是商业代码,这很可能会违反您的许可协议(protocol),并且在任何情况下都很可能无法正常工作。
关于c# - 添加 .NET Framework DLL 作为对 Windows 应用商店应用程序的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14708921/