相关疑难解决方法(0)

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

我有一个项目,其中包含两个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'的目标与目标不同或与当前便携式图书馆项目": 在此输入图像描述

这很奇怪,因为我的测试和FS_PL库都配置为以.NET 4.5和Windows 8为目标.

所以我创建了FS_PL_Legacy并尝试添加对它的引用.这样做给了我一个非常"有用"的消息,指出"无法添加对项目'FS_PL_Legacy'的引用": 在此输入图像描述

有谁知道我做错了什么?

部分解决方法#1

使用miegirl解决此问题的Connect问题的解决方法,我在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>
Run Code Online (Sandbox Code Playgroud)

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

构建输出窗口中的大多数警告表明无法引用F#库,因为它们似乎具有"对框架程序集的间接依赖"[System.Threading/System.Lync/etc.]"无法在目前有针对性的框架"

c# f# portable-class-library visual-studio-2013

15
推荐指数
1
解决办法
1050
查看次数