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# или нет) завершается с этой ошибкой:

ошибка FS1221: FSharp.Core.sigdata не найден вместе с FSharp.Core

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

1 ответ

Решение

Вы найдете это в ссылочных сборках, так как 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, которое использует приложение, оно, вероятно, будет работать.

Другие вопросы по тегам