gpt4 book ai didi

c# - 如何从 C# 可移植类库 (PCL) 添加对 F# 可移植库的引用

转载 作者:可可西里 更新时间:2023-11-01 07:47:14 24 4
gpt4 key购买 nike

我有一个项目,其中包含两个 F# 项目和一个 C# 项目,我想在其中编写一些 XUnit 测试:

  • FS_PL:F# 3.1 (3.3.1.0) 可移植库
  • FS_PL_Legacy:F# 31。(2.3.5.1) 可移植库(旧版)
  • 测试:C# .NET 4.5/Win8 C# 可移植类库 (PCL)

我无法从测试添加对任一 F# 库的引用。

当我尝试添加对 FS_PL 的引用时,我看到一个对话框,指出“无法添加对项目‘FS_PL’的引用。可移植库项目‘FS_PL’的目标与当前可移植图书馆项目的目标”: enter image description here

这很奇怪,因为我的测试和 FS_PL 库都配置为面向 .NET 4.5 和 Windows 8。

所以我创建了 FS_PL_Legacy 并尝试添加对它的引用。这样做会给我一条非常“有帮助”的消息,指出“无法添加对项目‘FS_PL_Legacy’的引用”: enter image description here

有人知道我做错了什么吗?

部分解决方法#1

使用 a Connect issue discussing this problem 中的 miegirl 解决方法,我将以下内容添加到 C# 项目中:

<ItemGroup>
<!-- Manually added reference to F# projects to overcome issue discussed here:
http://stackoverflow.com/questions/23111782/how-do-i-add-a-reference-to-f-portable-library-from-c-sharp-portable-class-libr
-->
<ProjectReference Include="..\FS_PL\FS_PL.fsproj">
<Project>{2c4b1776-3d34-4534-8520-8a1e6daa0e6e}</Project>
<Name>FS_PL</Name>
</ProjectReference>
<ProjectReference Include="..\FS_PL_Legacy\FS_PL_Legacy.fsproj">
<Project>{0d7b657c-906b-4448-ae64-2153a1fa910c}</Project>
<Name>FS_PL_Legacy</Name>
</ProjectReference>
</ItemGroup>

这至少允许 VS 引用 F# 项目,但这些项目带有多个警告标记,并且 C# 可移植库无法构建,因为它无法引用一个或两个 F# 库中的类型:(

构建输出窗口中的大多数警告表明无法引用 F# 库,因为它们似乎“间接依赖于框架程序集”[System.Threading/System.Lync/etc.]”,而后者无法引用在当前目标框架中解决”

最佳答案

Ask and ye shall be heard ...

raised this issue on Twitter与 Don Syme 和 F# 团队的一些成员。他们确认这是一个问题,他们有一个修复程序正在通过发布过程。

我安装了 today's Visual F# daily build我可以确认这个问题已经解决了!

感谢 Don 和 F# 团队解决了这个问题 - 我现在可以将新的 F# 代码合并到我的主要 C# 代码库和测试套件中......并开始用比等效的 C# 少得多的 F# 代码替换我们系统的 block ; )

关于c# - 如何从 C# 可移植类库 (PCL) 添加对 F# 可移植库的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23111782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com