溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

net開發(fā)過程中Bin目錄下面文件格式有哪些

發(fā)布時(shí)間:2021-09-16 12:00:07 來源:億速云 閱讀:147 作者:柒染 欄目:開發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)net開發(fā)過程中Bin目錄下面文件格式有哪些,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

在.NET開發(fā)中,我們經(jīng)常會(huì)在bin目錄下面看到這些類型的文件:

.pdb、.xsd、.vshost.exe、.exe、.exe.config、.vshost.exe.config

項(xiàng)目發(fā)布的時(shí)候,往往搞不清楚哪些是需要的,那些是不需要的。那么這些格式的文件到底是干什么用的呢?

pdb

.pdb文件,是VS生成的用于調(diào)試的符號(hào)文件(program database),保存著調(diào)試的信息。在VS的工程屬性,C/C++,調(diào)試信息格式,設(shè)置/Zi,那么VS就會(huì)在構(gòu)建項(xiàng)目時(shí)創(chuàng)建PDB文件。

在這里要區(qū)分兩種情況:

1、構(gòu)建靜態(tài)庫(kù)時(shí),可以在工程屬性 –> C/C++ –> 輸出文件 –> 程序數(shù)據(jù)庫(kù)名 設(shè)置生成的pdb文件名稱,如果不指定,默認(rèn)是生成為VCx0.pdb,這里x是VS版本號(hào),例如用VS2005,就會(huì)生成VC80.pdb。這里就會(huì)產(chǎn) 生一個(gè)疑問,編譯靜態(tài)庫(kù)時(shí)默認(rèn)生成的.pdb文件名字都一樣,那引用這個(gè)靜態(tài)庫(kù)的項(xiàng)目最后能找到正確的.pdb文件嗎?答案是肯定的,因?yàn)閂S會(huì)在生成的 文件中嵌入 .pdb 文件的路徑。

舉個(gè)例子,在Project/ToolA下,構(gòu)建了一個(gè)靜態(tài)庫(kù)ToolA.lib,對(duì)應(yīng)生成一個(gè)vc80.pdb,同樣在在Project /ToolB下,構(gòu)建了一個(gè)靜態(tài)庫(kù)ToolB.lib,對(duì)應(yīng)生成一個(gè)vc80.pdb。然后最終的工程Work.exe同時(shí)鏈接了這兩個(gè)靜態(tài)庫(kù).這時(shí),生 成Work.pdb的時(shí)候,就會(huì)在ToolA.lib中找到它對(duì)應(yīng)的符號(hào)文件路徑Project/ToolA/vc80.pdb,以及ToolB.lib 對(duì)應(yīng)的符號(hào)文件路徑Project/ToolB/vc80.pdb,合并生成最終工程的Work.pdb。

2、構(gòu)建可執(zhí)行文件或動(dòng)態(tài)庫(kù),這種情況下,編譯器會(huì)生成一個(gè).pdb文件,鏈接器會(huì)生成一個(gè).pdb文件,編譯器生成的pdb文件可以在在工程屬 性 –> C/C++ –> 輸出文件 –> 程序數(shù)據(jù)庫(kù)名 設(shè)置,鏈接器生成的.pdb文件可以在工程屬性 –> 鏈接器 –> 調(diào)試 –> 生成調(diào)試信息(設(shè)置Yes),生成程序數(shù)據(jù)庫(kù)名設(shè) 置。

這兩個(gè)pdb文件有什么不一樣呢?編譯器生成的pdb文件,默認(rèn)也是用vcx0命名,是編譯器在編譯過程中,把每個(gè).obj文件對(duì)應(yīng)的符號(hào)信息存儲(chǔ)在其中的,但不包括函數(shù)定義。而鏈接器生成的.pdb文件,默認(rèn)使用工程名命名,是鏈接器在鏈接工程時(shí),根據(jù)編譯器生成的vcx0.pdb再進(jìn)一步加工出 來的,具有完整信息的符號(hào)文件。就像鏈接器根據(jù)各個(gè).obj文件生成exe或dll一樣,編譯器生成的.pdb文件是編譯-鏈接過程的中間產(chǎn)物,最后用于 調(diào)試程序的是鏈接器生成的ProjectName.pdb.

上面說的是pdb文件生成規(guī)則。在使用的時(shí)候,調(diào)時(shí)期會(huì)取到文件對(duì)應(yīng)的pdb文件路徑,然后去那個(gè)路徑(絕對(duì)路徑)下找,如果這個(gè)exe或者dll 是自己編的,那無論它放在哪里,pdb文件只要不動(dòng),調(diào)試器都能找到它。如果調(diào)試器在那個(gè)路徑下找不到,就會(huì)到exe或者dll的同級(jí)目錄找。例如這個(gè)工 程是別人編出來的,連同符號(hào)文件一起發(fā)過來,我們只要把符號(hào)文件與exe或者dll放在同級(jí)目錄,調(diào)試器也能找到它。當(dāng)然,在調(diào)試器中也可以自己指定符號(hào) 文件路徑

XSD

XSD是指XML結(jié)構(gòu)定義 ( XML Schemas Definition )

XML Schema 是DTD的替代品。XML Schema語(yǔ)言也就是XSD。

XML Schema描述了XML文檔的結(jié)構(gòu)??梢杂靡粋€(gè)指定的XML Schema來驗(yàn)證某個(gè)XML文檔,以檢查該XML文檔是否符合其要求。文檔設(shè)計(jì)者可以通過XML Schema指定一個(gè)XML文檔所允許的結(jié)構(gòu)和內(nèi)容,并可據(jù)此檢查一個(gè)XML文檔是否是有效的。XML Schema本身是一個(gè)XML文檔,它符合XML語(yǔ)法結(jié)構(gòu)??梢杂猛ㄓ玫腦ML解析器解析它。

一個(gè)XML Schema會(huì)定義:文檔中出現(xiàn)的元素、文檔中出現(xiàn)的屬性、子元素、子元素的數(shù)量、子元素的順序、元素是否為空、元素和屬性的數(shù)據(jù)類型、元素或?qū)傩缘哪J(rèn)和固定值。

XSD是DTD替代者的原因,一是據(jù)將來的條件可擴(kuò)展,二是比DTD豐富和有用,三是用XML書寫,四是支持?jǐn)?shù)據(jù)類型,五是支持命名空間。

XSD文件的后綴名為.xsd。

XML Schema的優(yōu)點(diǎn):

1) XML Schema基于XML,沒有專門的語(yǔ)法

2) XML可以象其他XML文件一樣解析和處理

3) XML Schema支持一系列的數(shù)據(jù)類型(int、float、Boolean、date等)

4) XML Schema提供可擴(kuò)充的數(shù)據(jù)模型。

5) XML Schema支持綜合命名空間

6) XML Schema支持屬性組。

.vshost.exe和.exe

.vshost.exe顧名思義,是visual studio宿主應(yīng)用程序,vs運(yùn)行調(diào)試時(shí)是打開的其實(shí)是這個(gè)文件,這個(gè)程序可以讓vs跟蹤調(diào)試信息。宿主進(jìn)程是 Visual Studio 2005/2008/2010/201x 中的一項(xiàng)功能,能提高調(diào)試性能,支持部分信任調(diào)試并支持設(shè)計(jì)時(shí)表達(dá)式計(jì)算。

宿主進(jìn)程文件的文件名中包含 vshost,并位于項(xiàng)目的輸出文件夾中。而exe則可以直接打開,vs不會(huì)跟蹤任何這個(gè)文件的運(yùn)行情況。只要引用的程序集完整,可直接運(yùn)行。

.exe.config和.vshost.exe.config的差異

.exe.config是非調(diào)試下的配置文件。

vshost.exe.config是個(gè)臨時(shí)文件,在debug時(shí)候生成的調(diào)試的時(shí)候用的。

文件夾中vshost.exe.config文件的內(nèi)容和.exe.config是完全一樣的,主要用于宿主進(jìn)程調(diào)試,不應(yīng)通過應(yīng)用程序直接運(yùn)行或部署。

以上就是net開發(fā)過程中Bin目錄下面文件格式有哪些,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

bin
AI