【发布时间】:2011-03-19 20:54:40
【问题描述】:
我正在用 C# 编写一个非常小的应用程序,我需要包含一个带有某些类的 .cs 文件。我怎么做?我正在寻找与 PHP 的“包含文件”或 Python 的“从文件导入某些东西”等价的东西。显然“使用”是不够的,文件必须以某种方式链接。而且我真的不想使用 MonoDevelop 或 VisualStudio 开始一些新的超级巨大的完全无用的项目,我想继续使用简单的 gmcs 和命令行。
【问题讨论】:
我正在用 C# 编写一个非常小的应用程序,我需要包含一个带有某些类的 .cs 文件。我怎么做?我正在寻找与 PHP 的“包含文件”或 Python 的“从文件导入某些东西”等价的东西。显然“使用”是不够的,文件必须以某种方式链接。而且我真的不想使用 MonoDevelop 或 VisualStudio 开始一些新的超级巨大的完全无用的项目,我想继续使用简单的 gmcs 和命令行。
【问题讨论】:
您只需在命令行中包含两个文件名,并确保名称空间相同,或者所包含文件的名称空间是通过 using 语句或完全限定引用导入的。那么编译的命令行是这样的:
gmcs mainFile.cs includeFile.cs
请注意,mono 命令行旨在支持与 Microsoft 编译器完全相同的语法(有一些添加),因此两者都适用。
从根本上说,这就是项目文件和 Visual Studio 正在做的事情(尽管要通过内存中的 msbuild 等效项)
【讨论】:
有两种方法可以在 .NET(和 Mono)中“包含”文件
一起编译几个文件。
gmcs mainFile.cs includeFile.cs
然后将文件一起编译为单个程序集
将 includeFile 编译为单独的程序集并从主程序集中引用该程序集
gmcs -target:library includeFile.cs
gmcs -r:includeFile.dll mainFile.cs
这样你得到两个程序集
【讨论】: