MSBuild釋出網站

nhconch發表於2007-09-26

因為用的是vwd,所以一直是用csc、vbc編譯需加密的內容後手工釋出網站,今天查了一下,可以用MSBuild手工釋出整個網站(最終呼叫aspnet_compiler來完成),做個記號。

如果不希望釋出時生成除錯資訊,請使用/p:Configuration=Release選項,或修改sln的Debug為 "False"。如果只需編譯問題內容,可考慮vbc、csc。

MSBuild官方說明:http://msdn2.microsoft.com/zh-cn/library/ms171451(VS.80).aspx

下載最新的版本:
Build.Community.Tasks.msi - MSBuild Community Tasks Setup
MSBuild.Community.Tasks.v1.1.0.145.zip - MSBuild Community Tasks v1.1.0.145 Source

除錯資訊檔案為pdb,有關說明如下:
請查詢MSDN:ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vsdebug/html/_core_The_..PDB_Files.htm

程式資料庫 (PDB) 檔案儲存著除錯和專案狀態資訊,使用這些資訊可以對程式的除錯配置進行增量連結。當用 /ZI 或 /工Zi 編譯 C/C++ 程式時或用 /debug 編譯 Visual Basic/C#/JScript .NET 程式時將建立 PDB 檔案。

在 Visual C++ 中,/Fd 選項用於命名由編譯器建立的 PDB 檔案。當在 Visual Studio 中使用嚮導建立專案時,/Fd 選項被設定為建立名為 project.PDB 的 PDB 檔案。

如果使用生成檔案建立 C/C++ 應用程式,並指定 /ZI 或 /Zi 而不指定 /Fd 時,則最終將生成兩個 PDB 檔案:

VC70.PDB (更籠統地說就是 VCx0.PDB,其中 x 表示 Visual C++ 的版本。)該檔案儲存各個 OBJ 檔案的所有除錯資訊並與專案生成檔案駐留在同一個目錄中。
project.PDB 該檔案儲存 .exe 檔案的所有除錯資訊。對於本機程式碼,它駐留在 /debug 子目錄中。對於託管程式碼,它駐留在 /WINDEBUG 子目錄中。
每當建立 OBJ 檔案時,C/C++ 編譯器都將除錯資訊合併到 VCx0.PBD 中。插入的資訊包括型別資訊,但不包括函式定義等符號資訊。因此,即使每個原始檔都包含公共標頭檔案(如 <windows.h>),這些標頭檔案中的 typedef 也只儲存一次,而不是在每個 OBJ 檔案中都存在。

連結器將建立 project.PDB,它包含專案的 EXE 檔案的除錯資訊。project.PDB 包含完整的除錯資訊(包括函式原型),而不僅僅是 VCx0.PDB 中的型別資訊。這兩個 PDB 檔案都允許增量更新。

Visual Studio 偵錯程式使用由連結器直接建立的 project.PDB 檔案並將此 PDB 的絕對路徑嵌入到 EXE 或 DLL 檔案中。如果偵錯程式在該位置無法找到 PDB 檔案或者如果路徑無效(例如,如果專案被移動到了另一臺計算機上),偵錯程式將搜尋包含 EXE 的路徑,即在解決方案的“屬性頁”中指定的“符號路徑”(“除錯符號檔案”頁 ->“通用屬性”資料夾)。偵錯程式不會載入與所除錯的二進位制不匹配的 PDB。

 另:有人提到R2Build,沒用過,先記下來。

相關文章