C#專案obj和bin檔案什麼區別和聯絡

suiyueliujin_hhhh發表於2016-07-01
1.bin 
    bin目錄用來儲存專案生成後程式集,它有Debug和Release兩個版本,分別對應的資料夾為bin/Debug和bin/Release,這個資料夾是預設的輸出路徑,我們可以通過:專案屬性—>配置屬性—>輸出路徑來修改。
    在新增引用時,.NET會記錄新增的引用絕對路徑,這些設定儲存在“每使用者”檔案中,(Solution.csproj.user),可以通過記事本開啟檢視。也可以在:專案屬性—>通用屬性—>引用路徑裡面檢視。如果設定複製到本地為true,在生成專案時會自動拷貝該DLL到專案生成資料夾中(bin目錄),否則不會拷貝。在生成專案時,對所新增的引用的是絕對路徑,而在執行時程式集預設只在當前所在的路徑下去找。要修改引用的路徑,必須通過程式設計的方法去實現。使用References 物件。
   在bin\debug\目錄中有兩個檔案,除了要生成的.exe或.dll檔案外,還有個.pdb檔案,這個.pdb檔案中就記錄了程式碼中的斷點等除錯資訊。一般移植或者打包程式只需要Debug檔案即可,裡面包含.exe檔案、.dll檔案、.ini檔案、.xml檔案、.pdb檔案、.lib檔案、.config、.manifest檔案、.png檔案、.gif檔案、.cur檔案、自定義資料夾等。
   在\bin\release\目錄下只有一個.exe或.dll檔案,Release模式下不包含除錯資訊,並對程式碼進行了優化。
2.obj
    obj目錄是用來儲存每個模組的編譯結果,在.NET中,編譯是分模組進行的,編譯整個完成後會合併為一個.DLL或.EXE儲存到bin目錄下。因為每次編譯時預設都是採用增量編譯,即只重新編譯改變了的模組,obj儲存每個模組的編譯結果,用來加快編譯速度。是否採用增量編譯,可以通過:專案屬性—>配置屬性—>高階—>增量編譯來設定。

相關文章