FSharp.Core.sigdata не найден рядом с FSharp.Core

Я пытаюсь использовать F # для приложения ASP.NET MVC. Один из моих действий с контроллером отправляет список F # в представление, поэтому я пишу:

<%@ Page Language="C#" Inherits="ViewPage<FSharpList<int>>" %>

Конечно, для этого я должен добавить Microsoft.FSharp.Collections в элемент namespaces в моем web.config:

<add namespace="Microsoft.FSharp.Collections"/>

и добавьте ссылку на FSharp.Core в элементе ассемблеры:

<add assembly="FSharp.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

Как только я добавлю ссылку на сборку, каждое представление (независимо от того, использует ли он тип F # или нет) с этой ошибкой:

error FS1221: FSharp.Core.sigdata не найден рядом с FSharp.Core

Я могу обойти это, не имея каких-либо конкретных типов F # в моих представлениях, но в чем причина этой ошибки? Кроме того, где FSharp.Core.sigdata? Это не в моем GAC, и я ничего не могу найти.

Ответ 1

Вы найдете его с помощью Reference Assemblies, поскольку sigdata и optdata - это вещи времени разработки (но я думаю, что CodeDom тоже нуждается в них?), например:

C:\Program Files\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v2.0\FSharp.Core.dll
C:\Program Files\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v2.0\FSharp.Core.optdata
C:\Program Files\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v2.0\FSharp.Core.sigdata

Если вы скопируете те, которые находятся рядом с FSharp.Core, которые использует приложение, это, вероятно, будет работать.