我对文件如何编译在一起感到茫然,似乎没有相互引用。我刚刚启动Visual Studio 2012,然后启动了一个新项目,然后单击了Windows Forms Application。该解决方案包括以下文件:Form1.Designer.cs,AssemblyInfo.cs,Settings.Designer.cs和Resources.resx,据我所知。那将是四个文件全部执行但似乎没有任何相互引用。 C#是否只执行包含Main()的目录中的所有文件?如果是这样,那么它如何确定订单?我在其他地方找不到这些信息。
答案 0 :(得分:2)
如果检查项目文件的原始内容(使用外部编辑器打开它),您将看到它不是任意的。该项目“将这些文件联系在一起”。它将与名为project_name.csproj的其他文件(对于C#)位于同一文件夹中
为了更深入地研究.NET中的编译如何工作,我建议尝试使用命令行编译器。 csc用于C#,vbc用于VB。
格式是XML,开头看起来像这样:(即使是一个非常小的应用程序也会有一个相当大的prj文件。)
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{37482A08-A668-45C7-A650-37EA2248B1F6}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
etc.
答案 1 :(得分:-1)
还有一个名为Program.cs
的文件,它有一个main方法,此方法确定应首先运行的应用程序,并且默认运行Form1.cs
请参阅以下行:
Application.Run(new Form1());
所以现在您知道将首先编译哪个类,然后将第一个编译的表单与另一个表单或其他任何内容链接起来,并使用动作事件处理程序(例如按钮单击)启动它。