无法将C#PCL的引用添加到F#PCL(VS 2015 Update 1)

Ana*_*ick 16 .net c# f# visual-studio xamarin

我在创建F#便携式项目时遇到问题,应该从C#便携式项目中引用.添加此类引用时,将显示以下消息:

无法添加对'PortableLibrary1'的引用.可移植库项目只能引用其他可移植库项目和程序集.

使用最新的Visual Studio 2015 Update 1(版本14.0.24720.00)可以轻松复制该问题.我也安装了Xamarin.

我可以使用以下可用的任何C#便携式项目重现该问题:

  • 类库(便携式)
  • 类库(适用于iOS,Android和Windows)

以及任何类型的F#可移植库项目,具有以下可用:

  • 可移植库(.NET 4.5,Windows应用商店,Silverlight 5,Xamarin)[配置文件47]
  • 可移植库(.NET 4.5,Windows应用商店,Windows Phone 8 Silverlight,Xamarin)[配置文件78]
  • 可移植库(.NET 4.5,Windows应用商店,Windows Phone 8.1,Windows Phone Silverlight 8,Xamarin)[Profile 259]
  • 可移植库(.NET 4.5,Windows应用商店,Xamarin)[配置文件7]

我使用与C#相同的配置文件和F#,没有任何帮助.

似乎之前已经存在这样的问题(如何从C#可移植类库(PCL)添加对F#可移植库的引用),然后成功修复了该问题.但它现在再次复制.

有人可以告诉我,我错过了什么吗?也许还需要额外安装一些东西?

Geo*_*lis 1

如果确实存在错误,并且您想将 C# PCL 库中的某些内容调用到 F# PCL 中,则一种解决方法可能是将 C# 库添加为对 F# 库的引用(另一种方法) 。

然后,F# 代码将实现您在 C# 端定义的接口(请参阅https://msdn.microsoft.com/en-us/library/dd233207.aspx )。

它还将调用您在 C# 端提供的方法,为您提供实现该接口(在 F# 端实现)的类实例的引用。或者,您可以使用 MEF(托管扩展性框架 - https://blogs.msdn.microsoft.com/jomo_fisher/2010/03/09/neat-samples-extend-your-f-program-with-mef/)来传递该信息从 F# 端到 C# 端的接口实现,C# 端发起“绑定”请求(另请参阅控制反转/依赖注入)