【问题标题】:Adding .NET Framework DLL as reference to windows store app添加 .NET Framework DLL 作为对 Windows 商店应用程序的引用
【发布时间】:2013-01-20 11:05:05
【问题描述】:

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

在网上搜索,我发现 Windows 商店应用程序必须仅使用对另一个 .NETCore 或 Portable Library 二进制文件的引用,它不能引用完整的 .NET 4.0 库。我想有很多人有类似的问题,所以我想知道那里有什么绕行技巧吗?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的快速答复!我研究了可移植类库,但在这种情况下,我无法访问库的完整源代码,只能访问 DLL 文件。
    • 这是一种“解决方法”,而不仅仅是官方的做事方式?
    【解决方案2】:

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

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

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

    向您的供应商恳求可能更容易...

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

    【讨论】:

    • 我只想说。感谢您的明确回答,即使是 3 年前。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 2010-12-03
    相关资源
    最近更新 更多