直播中
不可能在脫機時簽入文件;因為您未連接到網(wǎng)絡(luò),簽入命令未啟用。這是故意設(shè)置的,這樣可以在項目重新聯(lián)機時方便地查看哪些文件在脫機時被簽出。
進(jìn)入聯(lián)機狀態(tài)
這與進(jìn)入脫機狀態(tài)基本上相同。若要使解決方案及其項目聯(lián)機,請在“File”菜單上,單擊“Source Control”,然后單擊“Change Source Control...”。顯示的對話框與進(jìn)入脫機狀態(tài)時相同。選擇“Connected”即可使解決方案和項目聯(lián)機。
同步更改
若要使脫機工作時所做的更改與 Visual SourceSafe 數(shù)據(jù)庫中包含的解決方案和項目文件同步,需要從 Visual SourceSafe 中簽出脫機工作時簽出的每個文件,并將更改過的文件副本簽入 Visual SourceSafe。
進(jìn)入聯(lián)機狀態(tài)后,將對每個在脫機狀態(tài)下簽出的文件顯示以下兩個對話框:
<IMG SRC="http://www.microsoft.com/china/msdn/images/teamworvs10.gif" border=0>
圖 10:協(xié)調(diào)斷開連接狀態(tài)下簽出的文件
首先,單擊“Check out”(如圖 10 所示)。
<IMG SRC="http://www.microsoft.com/china/msdn/images/teamworvs11.gif" border=0>
圖 11:從 Visual SourceSafe 簽出文件
選擇“Leave this file?”可防止您的修改被 Visual SourceSafe 中包含的版本覆蓋。然后,需要簽入您修改后的文件。
警告:如果其他人簽入了此文件,然后您又簽入了相同文件,則將覆蓋其他人所作的變更。
注意:這些對話框僅對您在脫機狀態(tài)下簽出的文件顯示,而不會對進(jìn)入脫機狀態(tài)之前已簽出的文件顯示。練習(xí)警告,如第一個對話框所指出的,可能會丟失數(shù)據(jù)。
您在脫機工作時,如果簽出一個文件,而另一個團(tuán)隊成員也簽出、修改和簽入了同一文件,則必須非常謹(jǐn)慎,否則您的簽入將覆蓋該團(tuán)隊成員的修改。最安全的選擇是避免脫機文件簽出??偸窃诿摍C前簽出您要處理的文件。如果無法做到這一點,或您忘記了在脫機前簽出了所有要處理的文件,則在同步更改時手動合并文件。
如果您在脫機工作時簽出了一個文件,而另一個用戶也簽出了同一文件,則當(dāng)您使解決方案和項目聯(lián)機時,會顯示以下對話框:
<IMG SRC="http://www.microsoft.com/china/msdn/images/teamworvs12.gif" border=0>
圖 12:試圖簽出已簽出的文件時顯示的警告
單擊“OK”。在 Solution Explorer 中,此文件旁會顯示一個小警告符號,表示該文件仍需注意。
最后,如果您在脫機狀態(tài)下將文件添加到項目,則使項目聯(lián)機時,只需將新文件簽入 Visual SourceSafe 即可。
提示與技巧
URL 一致
所有的開發(fā)人員最好使用統(tǒng)一的虛擬根目錄,例如 http://localhost/projectName。盡量避免使用特定的服務(wù)器名稱,因為這可能使用戶難以共享項目文件。如果需要使用特定服務(wù)器名稱,請在 web.config 文件內(nèi)定義一個新的 <configSections>,并用它定義應(yīng)用程序的自定義設(shè)置。如果您在使用 Web 引用,則將 Web 服務(wù)放在本地并使用 http://localhost/webServiceName 作為 Web 引用,或?qū)?Web 引用 URL 行為設(shè)置為動態(tài)。動態(tài) URL 行為將在稍后說明。
引用路徑一致
將引用添加到一個非系統(tǒng)程序集時,IDE 會將程序集本地復(fù)制到項目(對于 Web 應(yīng)用程序,程序集將被復(fù)制到 bin 目錄)。若要控制程序集是否進(jìn)行本地復(fù)制,請用鼠標(biāo)右鍵單擊程序集,然后單擊“Propertities”。對于非系統(tǒng)程序集,“Copy Local”應(yīng)設(shè)置為“True”。這是默認(rèn)值,推薦在大多數(shù)情況下使用。
當(dāng)添加引用時,IDE 還會更新用戶項目文件內(nèi)的引用路徑,以指出程序集的實際位置。用鼠標(biāo)右鍵單擊項目,然后單擊“Propertities”。單擊“Common Properties”,然后單擊“References Paths”。在對話框中(如圖 13 所示),單擊“Cancel”。
<IMG SRC="http://www.microsoft.com/china/msdn/images/teamworvs13.gif" border=0>
圖 13:顯示引用路徑
盡管引用路徑顯示為項目的一個屬性,實際上它對于設(shè)置了該屬性的項目、計算機和用戶來說是特有的。這就意味者,如果開發(fā)人員 1 將引用添加到程序集并簽入了項目文件,則當(dāng)開發(fā)人員 2 獲得項目文件的最新版本時,程序集將顯示在 Solution Explorer 內(nèi)——但是生成很可能會失敗,因為開發(fā)人員 2 可能不具有相同的引用路徑。
要避免此問題,團(tuán)隊的所有開發(fā)人員應(yīng)該在團(tuán)隊內(nèi)部使用統(tǒng)一的引用路徑。這樣,只要符合以下條件,則某開發(fā)人員添加引用后其他開發(fā)人員就無需對解決方案或項目文件進(jìn)行任何操作:
引用路徑已經(jīng)設(shè)置,對每個項目任務(wù)只需設(shè)置一次
引用的程序集已存在于硬盤上,并且位置正確
該方法要求定義一個標(biāo)準(zhǔn)的生成輸出位置,并使所有的引用都引用該位置內(nèi)的程序集。如果該條件太嚴(yán)格,可以在引用路徑內(nèi)包含用逗號分隔的多個路徑。
添加 Web 引用
這也是 Visual Studio .NET Beta 2 相對于 Visual Studio .NET Beta 1 的改進(jìn)之一。
在您的項目所在的文件夾內(nèi),存在一個 Web References 文件夾。添加 Web 引用時,會在 Web References 文件夾下創(chuàng)建一個新文件夾。該新文件夾根據(jù)托管 Web 服務(wù)的服務(wù)器命名,并包含 WSDL、DISCO 和生成的 Web 服務(wù)客戶端代理。該文件夾名稱還用作 Web 服務(wù)客戶端代理的名稱空間。
添加 Web 引用時,這些文件夾和文件將添加到 Visual SourceSafe 項目。更新 Web 引用時,還將簽出、更新和簽入這些文件。(用鼠標(biāo)右鍵單擊 Web 引用,然后單擊“Update Web Referemce”。)
添加 Web 引用時,Web 服務(wù) URL 在 Web 服務(wù)客戶端代理內(nèi)被硬編碼。但是,可以更改 Web 服務(wù)客戶端代理的行為,使它從 .config 文件讀取 Web 服務(wù) URL。請用鼠標(biāo)右鍵單擊 Web 引用,單擊“Properties”,并將“URL Behavior”從“Static”更改為“Dynamic”。
<IMG SRC="http://www.microsoft.com/china/msdn/images/teamworvs14.gif" border=0>
圖 14:Web 引用屬性
下列代碼將被添加到 .config 文件:
<configuration> <appSettings> <add key="WinApp1.localhost.Service1"
value="http://localhost/WebServiceTest/Service1.asmx" /> </appSettings></configuration>
Web 服務(wù)客戶端代理的構(gòu)造函數(shù)也被修改,以便從 .config 文件讀取 Web 服務(wù) URL。
需要注意的一個問題是,不能添加兩個指向同一服務(wù)器,但指向不同 Web 服務(wù)的 Web 引用。這是因為 IDE 會試圖用已存在的文件夾名稱創(chuàng)建另一個 Web 引用。請參閱以上關(guān)于如何在文件系統(tǒng)內(nèi)表示 Web 引用的說明。
但是,這不過是一個小問題。只需將文件夾重命名為實際服務(wù)的名稱,而不要將其名稱(以及名稱空間名稱)保留為托管 Web 服務(wù)的服務(wù)器的名稱。請用鼠標(biāo)右鍵單擊 Web 引用,單擊“Propertities”并更改“Folder Name”。
Visual Studio .NET Beta 2 中的問題
項目文件簽出
項目文件需要進(jìn)行更改時會自動簽出。將文件添加到項目或更改項目設(shè)置時,通常會發(fā)生這種情況。但是,項目文件在修改后經(jīng)常不會簽入。在某些情況下,在生成過程和編輯表單過程中會發(fā)生不必要的項目文件簽出行為。這些是已知錯誤,應(yīng)在最終版本中解決。
最終結(jié)果是這可能導(dǎo)致團(tuán)隊開發(fā)人員爭用項目文件。如果發(fā)現(xiàn)團(tuán)隊成員在項目文件簽出時產(chǎn)生沖突,可能需要切換到共享簽出。
請注意,Solution Explorer 中的特殊 ! 標(biāo)識符號表示您已以獨占方式簽出項目文件。
多解決方案中的項目
盡管 Visual SourceSafe 集成支持將項目用于多個解決方案,但仍存在一個錯誤。使用 Visual Studio .NET Beta 2 時,最好盡量小心并確保每個項目只屬于一個解決方案。
脫機工作
脫機工作時,有許多需要注意的問題。最主要的問題是需要取消警告對話框,以便在脫機工作時成功地簽出文件。該問題以及其他問題在前面已經(jīng)敘述過。
項目不在 Visual SourceSafe 內(nèi)
這可能是個小問題,但如果您的項目不在 Visual SourceSafe 內(nèi),并且解決方案在 Visual SourceSafe 內(nèi),則 Solution Explorer 會將項目及其文件顯示為簽出狀態(tài),即使它們不在 Visual SourceSafe 中??梢哉J(rèn)為簽出的標(biāo)識符表示“本地更改”或不添加到 Visual SourceSafe。簽入命令將項目文件添加到 Visual SourceSafe 中。
刪除引用
這可能也是個小問題,但如果刪除了對非系統(tǒng)程序集的引用,IDE 將不會更新用戶項目文件內(nèi)的引用路徑。即使不再引用程序集,程序集的實際位置仍保留在引用路徑內(nèi)。
生成多項目解決方案
默認(rèn)情況下,每個項目都應(yīng)生成到自己的輸出目錄。通常,項目會生成到 bin\debug 或 bin\release 子目錄。不支持將一個解決方案內(nèi)的多個項目生成到同一目錄中。
對同一解決方案中的任何引用(即被同一解決方案內(nèi)的其他項目引用的項目生成輸出),“Copy Local”應(yīng)保留為默認(rèn)值 TRUE。這既適用于程序集引用,也適用于項目之間的引用。
總結(jié)
Visual Studio .NET Beta 2 中的團(tuán)隊工作特性是相對于 Visual Studio .NET Beta 1 的一項重大改進(jìn)。現(xiàn)在所有的核心方案都能工作,而且大多數(shù)運行良好。盡管在發(fā)布之前仍需要解決一些小錯誤,Visual SourceSafe 集成和 IDE 的變化還是帶來了改進(jìn)的團(tuán)隊開發(fā)體驗。現(xiàn)在可以更輕松地在開發(fā)人員之間共享項目文件和源代碼文件,并可以更輕松地將應(yīng)用程序從開發(fā)環(huán)境移到測試和產(chǎn)品環(huán)境。