Работа с решением
Работа с решением
Вернемся к решению 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 или контекстного меню, вызванного щелчком правой кнопщй мыши в окне решения.
Ниже приведено содержимое файла проекта в текстовой форме. Обратите внимание на частое повторение ключевого слова 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>