¿Cómo hacerlo? ¿Es posible llamar una función de un código F # a C# sin usar un archivo o proyecto dll separado?¿Es posible mezclar archivos .cs (C#) y .fs (F #) en un único proyecto de Visual Studio Windows Console? (.NET)
Respuesta
No puede incluir dos idiomas diferentes en el mismo proyecto, pero puede combinarlos usando ilmerge. Para hacer esto, ponga ambos proyectos en la misma solución y haga referencia al módulo F # como lo haría con cualquier dll. Como parte de su script de despliegue, ejecute ilmerge para combinar el archivo exe y el archivo dll en un solo archivo exe. Consulte este artículo Code Project que detalla cómo usar ilmerge para crear un exe.
No. Si desea producir un .exe solo, puede usar algunas de las opciones de enlace estático f #, use el interruptor de línea común F # --full-help con más detalles de estos.
No poder mezclar C# y F # en el mismo proyecto crea un problema; Conduce a dependencias circulares entre los dos proyectos. Conceptualmente, solo hay un proyecto que contiene dos idiomas, pero debido a la forma en que visual Studio administra los proyectos, los idiomas no se pueden mezclar, lo que lleva a dependencias circulares.
Por ahora, la única solución que veo es crear muchas interfaces en un tercer proyecto y hacer que uno de los proyectos se refiera al proyecto de interfaces, en lugar del proyecto real. ¿Hay una manera mejor?
Saludos cordiales, Nick
Excelente comentario y pregunta, pero no recibirá mucha atención a menos que lo publique como una pregunta. –
+1 He visto varios proyectos comerciales recurrir al uso de ILMerge para obtener C# y F # en el mismo ensamblaje. Microsoft debería admitir ILMerge correctamente e integrarlo en Visual Studio en lugar de dejar a un empleado para que ejecute el software de lanzamiento alfa. –
No se puede compilar archivos # fuente F (.fs) en un proyecto de C#, pero se puede añadir archivos de script de F # (.fsx) que se puede utilizar para hacer referencia y explorar el C# ensamblaje de proyecto de F # interactivo:
public static class Math
{
public static double PowN(double d, int n)
{
var result = 1;
for (int i = 0; i < n; i++) result *= d;
return result;
}
}
archivo de script de F # (.fsx):
#r "bin\debug\ClassLibrary1.dll"
Math.PowN(2.0,3)
compilar el código C#, "descompilar" con cualquier herramienta (como reflector, i lspy) al código C#, inclúyalo en un proyecto -> ¡Beneficio!
- 1. ¿Puedo mezclar C++ y C en un solo proyecto en Visual Studio?
- 2. Agregar F # a Visual Studio 2010 C# express - ¿es posible?
- 3. diferencia entre Console (/ SUBSYSTEM: CONSOLE) y Windows (/ SUBSYSTEM: WINDOWS)
- 4. cómo compilar un proyecto F # sin comprar Visual Studio
- 5. Cómo utilizar diferentes archivos en un proyecto para diferentes configuraciones de compilación - Visual Studio C# .net
- 6. ¿Puedes mezclar lenguajes .net en un solo proyecto?
- 7. Detener Visual Studio al mezclar terminaciones de línea en archivos
- 8. Simplest Visual Studio que admite C# y F #
- 9. ¿Cómo saber el tipo de proyecto de Visual Studio desde un proyecto de Visual Studio existente
- 10. ¿Cómo compilar y ejecutar un solo archivo de clase cs?
- 11. ¿es posible ver archivos de proyecto en Windows Azure?
- 12. ¿Es posible instalar un compilador de C# sin Visual Studio?
- 13. Ejecutables multiples desde un solo proyecto C# en Visual Studio
- 14. .less archivos CSS en Studio .NET y Visual
- 15. Pex y F # en Visual Studio 2010 Ultimate
- 16. ¿Es posible ejecutar hadoop fs -getmerge en S3?
- 17. ¿Es posible usar C# 4.0 con Visual Studio 2008?
- 18. Proyecto vacío de Visual Studio?
- 19. F #, espacios de nombres, módulos, fs y fsx
- 20. Visual Studio 2010 y Windows 2000
- 21. ¿Es posible cargar símbolos no coincidentes en Visual Studio?
- 22. código plegado en Visual Studio para F #
- 23. compilar C "estándar" ++ en Visual Studio (no .net)
- 24. proyecto de instalación en Visual Studio 2010 Requiere .NET 4.0
- 25. Archivos de grupo en Visual Studio
- 26. PHP intellisense en Visual Studio - ¿Es posible?
- 27. ¿Por qué los proyectos de Visual Studio están restringidos a un único idioma?
- 28. ¿Es posible especificar una carpeta de fuentes en un proyecto de Visual Studio?
- 29. Crear un proyecto de Visual Studio programáticamente
- 30. Posible búsqueda de tipo ViM en Visual Studio ¿es posible?
F # 's enlace de enlace estático así que lo mismo que ilmerge. – Robert