2010-04-28 10 views
10

Estoy tratando de usar F # para una aplicación ASP.NET MVC. Uno de mis acciones del controlador envía un F # lista a la vista, así que escribir:FSharp.Core.sigdata no encontrado junto con FSharp.Core

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

Por supuesto, para que esto funcione, tengo que añadir Microsoft.FSharp.Collections al elemento namespaces en mi web.config:

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

y añadir una referencia a FSharp.Core, en el elemento assemblies:

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

tan pronto como puedo añadir esta referencia montaje, todas las vistas (Si se utiliza un tipo F # o no) produce este error:

error FS1221: FSharp.Core.sigdata not found alongside FSharp.Core

puedo solucionar este al no tener ningún tipo específico F # en mis puntos de vista, pero ¿cuál es la razón de este error? Además, ¿dónde está FSharp.Core.sigdata? No está en mi GAC y no puedo encontrarlo en ningún lado.

+0

¿Podría usted subir su proyecto actual a alguna parte? Me encantaría probarlo, pero sería útil tener algún proyecto para comenzar :-). –

+0

@Tomas: gracias, intentaré crear un pequeño proyecto que reproduzca esto. –

+0

@Tomas: aquí está el proyecto: http://www.box.net/shared/7xnkfg5yps –

Respuesta

13

Lo encontrará con los conjuntos de referencia, como sigdata y optdata son las cosas en tiempo de diseño (pero supongo CodeDom los necesita también?), Por ejemplo:

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 

Si copia los al lado de la FSharp.Core que la aplicación está usando, probablemente funcione.

+0

Intenté copiar ambos optdata y sigdata en el contenedor de mi aplicación, el mismo error. También intenté copiarlos en el directorio de FSharp.Core en el GAC, lo mismo. –

+2

Se resolvió para mí después de copiar optdata y sigdata junto con FSharp.Core.dll. – t0yv0

+0

@tovyo: ¿para una aplicación web? –