17

當添加一個DLL作爲一個ASP.Net項目的引用時,VS2008添加了幾個文件到bin目錄。如果該DLL被稱爲foo.dll,VS2008將添加foo.dll.refresh,foo.pdb和foo.xml。我知道什麼是foo.dll :-),爲什麼VS2008添加其他三個文件?這三個文件有什麼作用?我可以刪除它們嗎?他們是否需要添加到源代碼管理中?Visual Studio 2008 - 添加引用

回答

20

源控制:

本斯特勞布在這個信息的評論中表示:.dll.refresh文件應該被添加到,如果需要的源代碼控制,而.xml.pdb,當然還有.dll文件不應該添加。

約翰·魯迪解釋時添加.refresh文件:

爲什麼這是一件好事(有時)? 假設你在一個團隊 的環境中。某人在代碼 中檢查foo.dll,並且您的編譯系統 會生成一個新的DLL,並將其輸出到服務器上的 文件共享中。您的刷新 文件指向該DLL的 DLL的服務器副本。下次你建立時,VS會自動奇蹟般地抓住最新的和最大的那個DLL的副本 。

的.xml像大衛Mohundro說:

的xml文件是有XML註釋 和智能。Visual Studio將 解析該文件並顯示在您在這些DLL中調用 方法時添加的註釋XML 。

.PDB像大衛Mohundro說:

PDB中是存在的調試和 符號。如果您從中拋出異常 ,則可以獲得 堆棧跟蹤等。您可以控制 選擇是否構建PDB爲 。

.REFRESHfrom a blog post about .refresh files:

它告訴VS到哪裏尋找更新的版本 具有相同基 名的dll。它們是文本文件,您可以打開 並查看它使用的路徑。

他們的目的是防止您從 不得不自己複製新版本。 在VS2003中,項目文件將 包含 參考的源位置,但由於VS2005不 使用項目文件ASP.NET 項目,這是更換爲 特定的功能。

+1

我唯一要添加的是* .dll.refresh文件*應該*在源代碼控制中,不像bin目錄中的任何其他文件。 – 2008-10-02 13:27:31

3

foo.pdb是foo.dll的調試器符號文件,您將需要它,否則您將無法在該代碼中設置斷點。

11

pdb用於調試和符號。如果你得到一個異常拋出,你可以得到堆棧跟蹤等。你可以控制PDB是否被構建。 xml文件用於XML註釋和intellisense。 Visual Studio將解析並顯示在這些DLL中調用方法時添加的XML註釋。

我不知道刷新文件。

2

VS2008將幾個文件添加到bin目錄[...]它們是否需要添加到源代碼管理中?

bin目錄中的任何內容都不需要添加到源代碼管理。最初檢查項目時首先要忽略bin和obj目錄。所以是的,你可以刪除這些文件,但Visual Studio會重新創建它們。

13

刷新文件(因爲沒有人的命中!)描述了DLL的來源。這是用於自動刷新引用;每當你做一個完整的構建時,VS都會查找該路徑並複製該版本的DLL。

爲什麼這是一件好事(有時)?假設你在團隊環境中。有人在代碼中檢查foo.dll,並且你的編譯系統建立一個新的DLL,並將它輸出到服務器上的文件共享中。您的刷新文件指向該DLL的服務器副本。下次你編譯時,VS會自動奇蹟般地獲取該DLL的最新和最大的副本。

+0

非常酷,不知道這一點。謝謝! – 2008-10-02 13:22:07