2009-12-14 9 views
5

Tengo un programa escrito C# que hace referencia a un conjunto escrito en F #. Si quiero distribuirlo, necesito incluir el ensamblado FSharp.Core.dll ¿verdad? (Suponiendo que el usuario no se ha instalado ya F #)Distribución de bibliotecas basadas en F #

El problema es que Visual Studio no copia este archivo DLL (o cualquier otro tipo F # dlls relacionados) cuando construyo mi solución. ¿Cómo puedo indicarle que copie el dll en la carpeta de salida?

Actualización: Actualmente estoy simplemente copiando manualmente en dlls para la implementación. Me preguntaba por qué esto es necesario en absoluto.

Respuesta

9

En VS, si hace clic con el botón derecho en la referencia de ensamblaje de FSharp.Core en el proyecto C#, seleccione "propiedades" y cambie "Copiar local" a "Verdadero", luego se copiará FSharp.Core.dll al directorio de salida.

(Esto es cierto en general para cualquier archivo DLL que se instala en el GAC en el equipo de desarrollo, pero que no está instalado en la máquina de despliegue.)

+0

Entendido. Veo que esto funciona para las bibliotecas. Sin embargo, las aplicaciones ASP.NET tienen una forma diferente de mostrar las referencias y esto no parece funcionar allí. –

4

No sé cómo automatizar la distribución de FSharp.Core.dll, pero se puede tratar de compilar con la bandera --standalone para generar un conjunto que se ejecuta en un PC sin necesidad de F # instalada.

Banderas del compilador de MSDN.

+0

Creo que esto funciona para programas independientes. Parece que eso puede no funcionar para mí ya que mi código está en una biblioteca que se llama desde un programa C#. Y ese programa necesita referenciar los tipos de datos F # para interoperar con él. –

1

Con .NET 4.0 hay una distribución F # Runtime. F# Runtime Esto es como el tiempo de ejecución J # que se enviaba por separado.

+0

Este enlace parece estar roto – User

Cuestiones relacionadas