如何做到这一点? 是否有可能从一个F#代码调用一个函数到C#中,而不使用分离的dll文件或项目?是否可以在单个Visual Studio Windows控制台项目中混合.cs(C#)和.fs(F#)文件? (.NET)
26
A
回答
21
您不能在同一个项目中包含两种不同的语言,但可以使用ilmerge合并它们。要做到这一点,将这两个项目放在同一个解决方案中,并像任何dll一样引用F#模块。作为部署脚本的一部分,运行ilmerge将exe文件和dll文件合并为一个exe文件。看到这篇文章详细介绍了如何使用ilmerge创建一个exe文件。
12
不可以。如果您想生成一个.exe文件,您可以使用f#静态链接选项的某些部分,使用F# - 全部帮助命令行开关来详细介绍这些选项。
15
不能在同一个项目中混合使用C#和F#会产生问题;它导致两个项目之间的循环依赖关系。从概念上讲,只有一个项目包含两种语言,但由于Visual Studio管理项目的方式不能混合使用,导致循环依赖。
现在唯一的解决方案,我看到它在第三个项目中创建了很多接口,并且其中一个项目引用接口项目,而不是真正的项目。 有没有更好的方法?
亲切的问候, 尼克
+6
优秀评论和问题,但除非您将其作为问题发布,否则您不会受到太多关注。 – 2011-01-01 18:18:27
6
不能在C#项目编译F#源文件(.FS),但您可以添加F#脚本文件(.fsx),你可以用它来参考和探索C#项目从F#交互式安装:
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;
}
}
F#脚本文件(.fsx):
#r "bin\debug\ClassLibrary1.dll"
Math.PowN(2.0,3)
0
编译您的F#代码, “反编译” 用任何工具(如反射,我lspy)转换为C#代码,将其包含在一个项目中 - > Profit!
相关问题
- 1. 是否可以使用Visual Studio 6.0 C++打开并执行Visual Studio C++ Win32控制台应用程序项目?
- 2. 是否可以在Visual Studio项目中指定源文件夹?
- 3. 我可以在Windows控制台中使用asp.net web项目文件c#
- 4. Visual Studio中的控制台cpp项目
- 5. 是否有可能将Visual Studio项目合并到单个文件中?
- 6. 我可以在Visual Studio中的单个项目中混合使用C++和C吗?
- 7. 在Visual Studio项目中创建“控制台”和“窗口”配置
- 8. 我可以在Visual Studio 2010中混合使用Qt和非Qt项目吗?
- 9. C#Windows窗体.Net和DOS控制台
- 10. visual studio项目部署文件混淆?
- 11. 在Visual Studio Express 2012 for Windows桌面(Windows 7)中组合C++和c#项目
- 12. 在Visual Studio中混淆.cs源本身
- 13. C#控制台和Windows应用程序
- 14. Visual Studio 2005中的空项目和win32控制台项目之间的差异
- 15. 你可以在单个项目中混合使用.net语言吗?
- 16. 通过代码排除项目中的.cs文件? (Visual Studio)
- 17. Windows窗体:是否可以在运行时插入.cs文件?
- 18. 是否可以在Windows Azure中查看项目文件?
- 19. 从.cs到数据库项目中的.cs文件的Visual Studio XML注释
- 20. Visual Studio控制台窗口
- 21. Visual Studio - 生成后事件以合并.cs文件
- 22. 混合C#和VB.NET项目中的UAC
- 23. 在Visual Studio中是否有“ZIP项目”?
- 24. 是否可以重写Visual Studio项目文件中的Nuget提示路径?
- 25. Visual Studio中单个C#项目中的多重可执行文件
- 26. SharpDevelop - 在一个项目中混合C#和VB.NET可能吗?
- 27. 是否可以在Visual Studio中的Win32 C++应用程序中的控制台中进行调试?
- 28. 可以混合为Visual Studio 2017导入psd文件?
- 29. 在C#控制台项目中启动一个表单?
- 30. 是否可以在一个单独的项目中隔离一个ascx控件?
F#的静态链接切换器与ilmerge相同。 – Robert 2009-01-22 08:55:14