添加.NET Framework DLL作为对Windowsapp store应用的参考

我正在开发一个Windowsapp store项目,我想从National Instruments DAQ中读取一个简单的温度测量数据。 然而,DAQ的DLL库是.NETFramework 4.0格式,当我将其添加为我的Windowsapp store项目的引用时,我收到以下错误: “项目目标’.NetFramework’,而文件引用目标’.NetCore’”

在网上搜索,我发现windows store app必须只使用对另一个.NETCore或Portable Library二进制文件的引用,它不能引用一个完整的.NET 4.0库。 我想有很多人有类似的问题,所以我想知道是否有任何走动技巧?

如果您坚持使用其他人提供的库,并且如果尝试游说他们生成便携版本不太可能成功,那么您唯一能做的就是找到其他地方来托管DLL,然后进行通信与托管它的任何东西。 例如,对于某些情况,可以编写一个基于ASP.NET Web API的服务,该服务将能够使用完整的.NET Framework,从而能够使用DLL。

显然,这会将另一个问题换成另一个问题:您现在需要一台可以为您运行Web服务的计算机。 (不幸的是,我相信微软并不正式支持在运行Windowsapp store应用的同一台机器上运行该网络应用。你可能能够在你的开发盒上运行它,但你将无法部署Web应用程序本身通过Windowsapp store。)

这里没有简单的路径 – 您必须编写一个层,通过HTTP服务公开您需要的所有内容,并使用客户端代码来使用这些服务。 您还需要考虑如何保护对服务的访问。

恳求供应商可能更容易……

从理论上讲,如果碰巧该库没有使用核心.NET配置文件之外的任何东西,那么你可以使用ILDASM和ILASM来解编译和重新编译代码,然后将其转换为可移植的库。 但是,如果是商业代码,这很可能会违反您的许可协议,并且在任何情况下都很可能不起作用。

“解决方法”是创建您想要作为可移植库的库版本。 这里的所有都是它的。 您根本没有完整的框架。

将类库转换为可移植类库所涉及的困难在很大程度上取决于库的作用以及它使用的BCL的哪些区域。