从Windows Store/Metro C#应用程序引用F#库

3
我正在尝试在F#中进行SharpDX开发。但是,SharpDX无法被导入到可移植库中,只能导入到标准.NET库中。
在解决了从C#应用程序引用F#库的一个明显的错误后,我现在在执行过程中遇到了另一个问题: 无法加载文件或程序集“FSharp.Core, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或其某个依赖项。系统找不到指定的文件。 这是一个常见的异常,但我不知道它在Visual Studio 2012中是什么原因。

请查看这个答案,可能是同样的问题。 - ildjarn
@ildjarn 糟糕,不是那个。 - Rei Miyasaka
1个回答

3
据我所知,您只能在Windows Store项目中引用F# Portable Libraries,而不能引用常规的F# dlls,这是第一件事。
第二个问题,正如错误提示所说 - 您必须引用FSharp.Core库。它位于此处:

C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\3.0\Runtime.NETPortable\FSharp.Core.dll

我在这里回答了类似的问题,并提供了更多信息:
https://dev59.com/2mrWa4cB1Zd3GeqP6goz#13064798

2
那太好了。我不知道他们希望通过这种分散来实现什么。感谢信息。 - Rei Miyasaka
可移植类库很好,但受限于在创建项目时声明的所有平台支持的API。这并不是真正的“分裂”,而是因为PCL必须只包含真正可移植的引用。 - Justin Skiles
@JustinSkiles .NET类库已经被分为Windows Store Class Libraries(仅适用于Metro、现代、商店和WinRT,不要与Windows RT混淆)、可移植类库(适用于Metro、桌面和移动设备,但不兼容Windows Store类库或.NET类库)和.NET类库(仅适用于桌面)。这就是碎片化的结果,这种碎片化的结果是,F#不能用来编写Windows Store Class Libraries,并且不能访问其他Windows Store Class Libraries,其中有许多。 - Rei Miyasaka
@ReiMiyasaka,你刚才说的完全没有反驳我的评论。 - Justin Skiles
@ReiMiyasaka,您正在描述一些新的库类型,它们实际上并不继承自原始的“.NET类库”类型。Windows Store类库针对.NET框架的一个子集(Windows Store的.NET),而PCL则针对您选择的任何内容。按照您的逻辑,任何新库类型的引入都是“分裂”。他们创建新框架时的设计决策已在//build会议和MSDN中记录。 - Justin Skiles
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接