你能在一个项目中混合使用.net语言吗?

时间:2008-10-13 04:01:23

标签: c# .net f#

你能在一个项目中混合使用.net语言吗?所以预编译,我想调用其他源文件的类和方法。

对于网络和应用程序?

特别是我对F#和C#感兴趣。

5 个答案:

答案 0 :(得分:16)

您可以将单个程序集中的语言与ILMergeMSBuild混合使用。

Here是一个非常好的例子。

答案 1 :(得分:11)

是的,您可以,但Visual Studio不直接支持它。你要做的是将代码编译成netmodules,然后将它们组合成一个程序集。编译器支持生成这些netmodules的“/ target:module”选项。

然后,您可以在构建时使用编译器引用其他网络模块,或使用Assembly Linker (Al.exe)。甚至还有一个msbuild任务:AL (Assembly Linker) Task

MSDN上提供了完整概述:How to: Build a Multifile Assembly

答案 2 :(得分:8)

CMS提到了一种有趣的方法,但实际上我建议你保持简单,并为C#和F#代码提供不同的程序集(项目)。 C#和F#之间有充分记录的通信点(例如herehere) - 我推荐它们。 C#和F#之间的差异(尤其是F#具有不同的运行时!)非常大......

答案 3 :(得分:2)

您可以在每个程序集项目(库DLL)中指定语言,并在同一解决方案中使用其中的一些,但我认为您不能在同一程序集中混合使用语言

答案 4 :(得分:2)

您可以在网站项目中执行此操作而不是编译第一个项目:http://www.aspnetlibrary.com/articledetails.aspx?article=Use-C-Sharp-and-VB.NET-in-the-same-project。网站的BuildProvider即时解析语言元素。

.NET BuilderProvider仍然不适用于非网站项目,因此您对标准应用混合智能感知运气不利。