1. sln文件格式
- 使用記事本打開.sln文件,
從一個(gè)外行角度看,VC/VS有3種版本號(hào),具備一定的迷惑性:(xx表示具體的數(shù)字)
MSVC++ xx(VC版本 eg. VC6.0)
_MSC_VER
VisualStudio xx(VS版本 eg. VS2012)
對(duì)照關(guān)系整理如下(更新至2022.11.9):
VC 版本 _MSC_VER VS 版本 MSVC toolset version
VC6.0 1200 VS 6.0
VC7.0 1300 VS2002
VC7.1 1310 VS2003
VC8.0 1400 VS2005 80
VC9.0 1500 VS2008 90
VC10.0 1600 VS2010 100
VC11.0 1700 VS2012 110
VC12.0 1800 VS2013 120
VC14.0 1900 VS2015 140
VC15.0 [1910,1916] VS2017 141
VC16.0 [1920,1929] VS2019 142
VC17.0 [1930,) VS2022 143
2. 解決方案(fangan.sln)文件
解決方案就是Visual Studio中用來(lái)組織項(xiàng)目的結(jié)構(gòu)。.sln文件包含基于文本編寫的信息,可用ultraedit打開,編譯環(huán)境通過(guò)這些信息找到并且加載他引用到的持久數(shù)據(jù)和VSPackages項(xiàng)目。當(dāng)用戶打開解決方案的時(shí)候編譯環(huán)境通過(guò)包含在.sln文件中的preSolution,Project,postSolution信息加載解決方案,包含在解決方案中的項(xiàng)目以及任何和解決方案有聯(lián)系的持久信息。
3.文件版本(運(yùn)行平臺(tái)信息)
Microsoft Visual Studio Solution File, Format Version 12.00
#Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
4.工程信息(包含的項(xiàng)目信息)
Project(“{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}”) = “ssyy1”, “ssyy1\ssyy1.vcxproj”, “{D1345DA1-6889-443F-975E-8FB1FEFEC1BC}”
EndProject
Project(“{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}”) = “ssyy2”, “ssyy2\ssyy2.vcxproj”, “{4773F960-EFEC-4C69-B583-671A3237EE72}”
EndProject
項(xiàng)目全局唯一標(biāo)識(shí)符(GUID)以及項(xiàng)目類型的全局唯一標(biāo)識(shí)符(GUID)
前面的"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}"是項(xiàng)目類型全局統(tǒng)一標(biāo)識(shí)符,項(xiàng)目的全局唯一標(biāo)識(shí)符(GUID)被傳遞到IVsProjectFactory用來(lái)加載和項(xiàng)目有關(guān)的特殊的VSPackage,然后這個(gè)項(xiàng)目被載入。在上面的代碼中被載入的VSPackage是Windows (Visual C++) ,因?yàn)槲覀儎?chuàng)建的兩個(gè)項(xiàng)目ssyy1、ssyy2都是Visual C++項(xiàng)目。
后面的"{D1345DA1-6889-443F-975E-8FB1FEFEC1BC}"是項(xiàng)目實(shí)例全局唯一標(biāo)識(shí)符,用于在該解決方案中標(biāo)識(shí)該項(xiàng)目的唯一性。每個(gè)項(xiàng)目中都存在一個(gè)唯一的項(xiàng)目實(shí)例ID,只有這樣這個(gè)項(xiàng)目才能被其他解決方案中需要他的項(xiàng)目使用。理想狀態(tài)下,如果解決方案和項(xiàng)目在源代碼控制之下,項(xiàng)目的路徑應(yīng)該和解決方案的路徑是相關(guān)的。當(dāng)解決方案被第一次加載時(shí),項(xiàng)目文件不能夠存在于用戶的電腦中。將項(xiàng)目文件存放在和解決方案文件相關(guān)的服務(wù)文件中,通過(guò)這個(gè)方法將相對(duì)簡(jiǎn)單的找到項(xiàng)目文件或者將項(xiàng)目文件復(fù)制到用戶的電腦中。然后編譯環(huán)境復(fù)制并加載剩下的項(xiàng)目所需文件。
GUID是確定的值:
部分VS項(xiàng)目GUID羅列如下:
Windows (C#) {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
Windows (VB.NET) {F184B08F-C81C-45F6-A57F-5ABD9991F28F}
Windows (Visual C++) {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
Web Application {349C5851-65DF-11DA-9384-00065B846F21}
Web Site {E24C65DC-7377-472B-9ABA-BC803B73C61A}
WCF {3D9AD99F-2412-4246-B90B-4EAA41C64699}
WPF {60DC8134-EBA5-43B8-BCC9-BB4BC16C2548}
XNA (Windows) {6D335F3A-9D43-41b4-9D22-F6F17C4BE596}
XNA (XBox) {2DF5C3F4-5A5F-47a9-8E94-23B4456F55E2}
XNA (Zune) {D399B71A-8929-442a-A9AC-8BEC78BB2433}
Silverlight {A1591282-1198-4647-A2B1-27E5FF5F6F3B}
ASP.NET MVC {F85E285D-A4E0-4152-9332-AB1D724D3325}
ASP.NET MVC 4 {E3E379DF-F4C6-4180-9B81-6769533ABE47}
Test {3AC096D0-A1C2-E12C-1390-A8335801FDAB}
Solution Folder {2150E333-8FDC-42A3-9474-1A3956D46DE8}
5…全局設(shè)置(全局變量)
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D1345DA1-6889-443F-975E-8FB1FEFEC1BC}.Debug|x64.ActiveCfg = Debug|x64
{D1345DA1-6889-443F-975E-8FB1FEFEC1BC}.Debug|x64.Build.0 = Debug|x64
{D1345DA1-6889-443F-975E-8FB1FEFEC1BC}.Debug|x86.ActiveCfg = Debug|Win32
{D1345DA1-6889-443F-975E-8FB1FEFEC1BC}.Debug|x86.Build.0 = Debug|Win32
{D1345DA1-6889-443F-975E-8FB1FEFEC1BC}.Release|x64.ActiveCfg = Release|x64
{D1345DA1-6889-443F-975E-8FB1FEFEC1BC}.Release|x64.Build.0 = Release|x64
{D1345DA1-6889-443F-975E-8FB1FEFEC1BC}.Release|x86.ActiveCfg = Release|Win32
{D1345DA1-6889-443F-975E-8FB1FEFEC1BC}.Release|x86.Build.0 = Release|Win32
{4773F960-EFEC-4C69-B583-671A3237EE72}.Debug|x64.ActiveCfg = Debug|x64
{4773F960-EFEC-4C69-B583-671A3237EE72}.Debug|x64.Build.0 = Debug|x64
{4773F960-EFEC-4C69-B583-671A3237EE72}.Debug|x86.ActiveCfg = Debug|Win32
{4773F960-EFEC-4C69-B583-671A3237EE72}.Debug|x86.Build.0 = Debug|Win32
{4773F960-EFEC-4C69-B583-671A3237EE72}.Release|x64.ActiveCfg = Release|x64
{4773F960-EFEC-4C69-B583-671A3237EE72}.Release|x64.Build.0 = Release|x64
{4773F960-EFEC-4C69-B583-671A3237EE72}.Release|x86.ActiveCfg = Release|Win32
{4773F960-EFEC-4C69-B583-671A3237EE72}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
preSolution和postSolution分別是在solution啟動(dòng)前啟動(dòng)后執(zhí)行的操作。
6.fangan.VC.db
用vs2015創(chuàng)建Visual C++項(xiàng)目,編寫生成后,每次都會(huì)生成一個(gè)project_name.VC.db文件,而且會(huì)隨著你工程修改運(yùn)行變的越來(lái)越大。
project_name.VC.db是sqlite后端用于百intellisense的新數(shù)據(jù)庫(kù),度相當(dāng)于之前的*.sdf SQL Server Compact數(shù)據(jù)庫(kù)。它與VS2015提供的智能感知、代碼恢復(fù)、團(tuán)隊(duì)本地倉(cāng)庫(kù)內(nèi)功能有關(guān),VS重新加載解決方案時(shí)速度超快。如果不需要,可以禁止,就不會(huì)產(chǎn)生該文容件了。
如果你不想生成該文件或不需要生成該文件的話可以通過(guò)以下方式取消:
設(shè)置方法:工具–》選項(xiàng)–》文本編輯器–》C/C++–》高級(jí),把回退位置和警告設(shè)置為true或者禁用數(shù)據(jù)庫(kù)設(shè)為true,這樣就不會(huì)產(chǎn)生那個(gè)文件了。
7.XXX.vcxproj
vcxproj是工程的配置文件問(wèn),管理工程中細(xì)節(jié)比如包含的文件,引用庫(kù)等。一般沒有sln,也答可以專直接打開vcxproj,也可以重新生成sln。
*.vcproj:VS2008以及VS2008之前版本的VS工程文件
*.vcxproj:VS2010以及VS2010之后版本的VS工程文件
8. XXX.vcxproj.filters
*.vcxproj.filters就是用于項(xiàng)目下文件的虛擬目錄,不能丟棄??衫斫鉃橐晥D文件,定義了工程在VS中打開后的目錄結(jié)構(gòu),修改該文件后重新build時(shí)vs不會(huì)重新build工程。vcxproj.filters文件是過(guò)濾信息文件,解決方案中的篩選器文件就保存在此文件中。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-617677.html
vcxproj.user是本地化用戶配置,允許多個(gè)用戶使用自己喜好的方式配置這個(gè)項(xiàng)目(例如打開項(xiàng)目時(shí)候窗體位置等與項(xiàng)目?jī)?nèi)容無(wú)關(guān)的配置), 不需要添加到版本控制中。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-617677.html
- 在解決方案目錄下的是最終文件(即可執(zhí)行文件)存放的目錄,在工程目錄下的是中間文件(編譯生成的.obj等其他文件)存放的目錄,中間文件對(duì)用戶來(lái)說(shuō)沒什么用的,只是在鏈接成最終文件時(shí)有用到。Debug只是為調(diào)試人員存在的。
9. XXX_main.obj文件
- 由編譯器或匯編工具生成的目標(biāo)文件,是模塊的二進(jìn)制中間文件。有幾個(gè)cpp就生成幾個(gè)obj文件,單獨(dú)編譯的,之間沒有聯(lián)系。因?yàn)槊看尉幾g都是增量編譯,也就是只重新編譯改變了的模塊,所以這個(gè)obj目錄的作用就是保存這些小塊的編譯結(jié)果,加快編譯速度。
10.XXX.log文件
- 日志記錄文件,是文本內(nèi)容。
10.XXX.Build.CppClean.log
- 當(dāng)點(diǎn)擊“重新生成解決方案”的時(shí)候會(huì)有,否則沒有。
10.XXX.tlog文件夾
- 相關(guān)記錄文件,比如編譯時(shí)候用到的庫(kù)的頭文件等;
10.XXX.pdb
- 是存放代碼中斷點(diǎn)等調(diào)試信息的,程序的pdb既是輸出文件又是輸入文件,因?yàn)長(zhǎng)INK在重新構(gòu)建程序時(shí)更新pdb。
10.XXX.idb
- 是記錄了哪些文件是修改過(guò)的,需要重新編譯的。
10.XXX.pch
- 是預(yù)編譯頭文件,存放工程中較穩(wěn)定的代碼。
到了這里,關(guān)于【genius_platform軟件平臺(tái)開發(fā)】第九十七講:常見Visual Studio版本號(hào)對(duì)應(yīng)表VisualStudioVersion的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!