添加.NET Framework DLL作为对Windows应用商店应用的参考

时间:2013-02-05 13:42:02

标签: c# .net windows-8 windows-store-apps labview

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

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

2 个答案:

答案 0 :(得分:12)

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

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

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

与供应商恳求可能更容易......

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

答案 1 :(得分:9)

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

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