Работа с решением

Вернемся к решению vb_ide_01, о котором говорилось выше. Хотя мы еще не ввели ни одной строки программного кода, VB .NET автоматически создает в каталоге решения несколько файлов и подкаталогов (в этом нетрудно убедиться при помощи Проводника Windows). Ниже приведен полный список содержимого каталога; в вашем случае данные будут похожими, хотя и не совпадающими полностью.

943 Assemblylnfo.vb

<DIR> bin

79 Modulel.vb

<DIR>

obj

1,354 vb_ide_01.sln

7,168 vb_ide_01.suo

3,008 vb_ide_01.vbproj

1.643 vb_ide_01.vbproj.user

6 File(s) 14,195 bytes

Прдкаталоги bin и obj используются при компиляции, а четыре файла образуют решение. В каталоге bin хранится откомпилированный код. В каталоге obj находится подкаталог, задействованный в процессе отладки. Исходный текст программы хранится в файле Modulel.vb. При просмотре файла в текстовом редакторе вы увидите следующий код:

Module Modulel

SubMain()

End Sub

End Module

Файл vb_ide_01.sln аналогичен .vbp-файлу проекта в VB6. В этом файле хранится вся служебная информация, необходимая для компиляции решения, в том числе описание всех проектов и файлов решения. Примерное содержимое этого файла приведено ниже:

Microsoft Visual Studio Solution File. Format Version 7.00

Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "vbjdejl", _

"vbjide_01\vb_ide_01.vbproj". "{F40E94D3-09CA-4E17-90EA-7A514E991F93}"

EndProject

Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "vb_ide_02". _

"vb_ide_02\vbjde_02.vbproj", "{926DC073-167F-49DO-8A30-AF27E27BA2B4}"

EndProject

Global

GlobalSection(SolutionConfiguration) = preSolution ConfigName.0 = Debug ConfigName.l = Release EndGlobalSection

GlobalSection(ProjectDependencies) = postSolution EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution

{F40E9403-09CA-4E17-90EA-7A514E991F93}.Debug.ActiveCfg = Debug|.NET {F40E94D3-09CA-4E17-9DEA-7A514E991F93}.Debug.Bui 1 d.0 = Debug|.NET {F40E94D3-09CA-4E17-9DEA-7A514E991F93}.Release.ActiveCfg = Release].NET {F40E94D3-09CA-4E17-9DEA-7A514E991F93}.Release.Build.0 = Release].NET {926DC073-167F-49В0-8A30-AF27E27BA2B4}.Debug.ActiveCfg = Debug|.NET {926DC073-167F-49D0-8A30-AF27E27BA2B4}.Debug.Build.0 = Debug|.NET {926DC073-167F-49D0-8A30-AF27E27BA2B4}.Release.ActiveCfg = Release!.NET {926DC073-167F-49D0-8A30-AF27E27BA2B4}.Release.Build.0 = Release].NET EndGlobalSection

GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection

GlobalSection(ExtensibilityAddlns) = postSolution EndGlobalSection

EndGlobal

Файл vb_ide_01.vbproj написан на языке XML В нем хранится информация о проекте, в том числе значения различных свойств. Для изменения свойств проекта обычно используется команда Properties меню Project или контекстного меню, вызванного щелчком правой кнопщй мыши в окне решения.

Язык XML занимает очень важное место в .NET. Все объекты, создаваемые в .NET, по возможности описываются (и даже передаются в Web) на языке XML.

Ниже приведено содержимое файла проекта в текстовой форме. Обратите внимание на частое повторение ключевого слова Assembly — это ключевое слово вместе с другими важными ключевыми словами Imports и Namespaces рассматривается в главе 4:

<VisualStudioProject>

<VisualBasic

ProjectType = "Local"

ProductVersion = "7.0.9254"

SchemaVersion = "1.0"

ProjectGuid = "{E24CC2EA-3E48-4C6E-8F92-ODE603B335D6}"

>

<Build> <Sett1ngs

Applicationlcon = ""

AssemblyKeyContainerName = ""

AssemblyName = "vb_ide_01"

AssemblyOhginatorKeyFile = ""

AssemblyOriginatorKeyMode = "None"

DefaultClientScript = "JScript"

DefaultHTMLPageLayout = "Grid"

DefaultTargetSchema = "IE50"

DelaySlgn = "false"

OutputType = "Exe"

OptionCompare = "Binary"

OptionExplicit = "On"

OptionStrlct = "Off"

RootNamespace = "vb_ide_01"

StartupObject = "vb_ide_01.Modulel"

>

<Config

Name = "Debug"

BaseAddress = "285212672"

ConfigurationOverrideFile= ""

DeflneConstants = ""

DefineDebug = "true"

DefineTrace = "true"

DebugSymbols = "true"

IncrementalBuild = "true"

Optimize = "false"

OutputPath = "bin\"

RegisterForComlnterop = "false"

RemovelntegerChecks = "false"

TreatWarningsAsErrors = "false"

WarningLevel = "1" /> <Config

Name = "Release"

BaseAddress - "285212672"

ConfigurationOverrideFile = ""

DefineConstants = ""

DeflneDebug - "false"

DefineTrace = "true"

DebugSymbols = "false"

IncrementalBuild ="false"

Optimize = "false"

OutputPath = "bin\"

RegisterForComlnterop = "false"

RemovelntegerChecks = "false"

TreatWarningsAsErrors = "false"

WarningLevel = "1"

/>

</Settings> <References> <Reference

AssemblyName = "System"

/>

Reference

Name = "System. Data"

AssemblyName = "System. Data"

/>

<Reference

Name = "System. XML"

AssemblyName = "System. Xml"

/>

</References> <Imports>

<Import Namespace = "Microsoft. VisualBasic" />

<Import Namespace = "System" />

<Import Namespace = "System. Col lections" />

<Import Namespace = "System. Data" />

<Import Namespace = "System. Diagnostics" />

</Imports> -</Build> <Files>

<Include> <File

RelPath = "Assemblylnfo.vb" SubType = "Code" . BuildAction = "Compile" /> <File

RelPath = "Modulel.vb" SubType = "Code" BuildAction = "Compile"

/>

</Include> </Files>

</VisualBasic>

</Vi sualStudi oProject>

Двоичный файл vb_ide_01.suo содержит пользовательскую инфьрмацию уровня решения — в частности, сведения об установленных точках прерывания и открытых документах. Если удалить этот файл, все пользовательские настройки будут потеряны, но решение останется работоспособным. В файле vbproj.user хранятся аналогичные параметры уровня проекта (как и когда проект запускается, следует ли при компиляции создавать отладочную версию и т. д.). Этот файл тоже написан на языке XML:

<VisualStudioProject> <VisualBasic>

<Build>

<Settings ReferencePath = "" >

<Config

Name = "Debug"

EnableASPDebugging = "false"

EnableASPXDebugging = "false"

EnableUnmanagedDebugging = "false"

EnableSQLServerDebugging = "false"

StartAction = "Project"

StartArguments = ""

StartPage = ""

StartProgram = ""

StartURL = ""

StartWorkingDirectory = ""

StartWithIE = "false" />

<Config

Name = "Release"

EnableASPDebugging ="false"

EnableASPXDebugging = "false"

EnableUnmanagedDebugging = "false"

EnableSQLServerDebugging = "false"

StartAction = "Project"

StartArguments = ""

StartPage = ""

StartProgram = ""

StartURL = ""

StartWorkingDirectory = ""

StartWithlE = "false"

/>

</Settings>

</Build>

<OtherProjectSetti ngs

CopyProjectDestinationFolder = ""

CopyProjectUncPath = ""

CopyProjectOption = "0"

ProjectView = "ProjectFiles"

/>

</VisualBasic>

</VisualStudioProject>