2009-06-18 29 views
1

我已經瞭解到構建應該非常直接,並且需要較少的人爲干預。在我的情況下,我有3個環境,DEV(開發版),SIT(STG集成測試)和UAT(用戶驗收測試)。所有這些環境都有不同的數據庫連接細節和其他設置(如日誌記錄)。在Visual Studio中管理C#項目中的多個配置文件

當前需要將應用程序部署到SIT環境時,我需要做的是構建應用程序。將其安裝在目標環境中,並手動修改配置文件。這是有問題的,因爲我可能會錯過一些條目。當配置文件很大時,事情會變得更糟。

問題

1 - 反正是有指定使得從VS.構建時環境名稱這樣就可以使用該環境的配置文件。

2 - 有哪些其他方法可以幫助減少人員對建築物的干預?

3 - 假設我的應用程序名稱是「Foo」。我在解決方案中有一個包項目,它將創建可安裝的包。無論如何要根據環境指定產品標題嗎?我的意思是如果選擇了SIT,安裝時的產品名稱將是「Foo-SIT」。我想這會避免混淆版本1的安裝環境。如果有任何更好的選擇,我會很樂意聽到。

回答

1

處理此問題的一種方法是創建3個項目並將環境放入新項目的名稱中。然後使用生成後事件根據項目名稱複製正確的文件。

在後期構建事件中,您可以根據$(ProjectName)宏指示項目名稱。所以,你可以做這樣的事情

IF "$(ProjectName)"="devproject" (
    copy ... 
    copy ... 
) 

這是最好的,使這些項目推遲了大部分工作(編譯)到單個項目,這樣你就不必保持設置多達跨多個項目的日期。

2

2 - 你是絕對正確的 - 你應該嘗試儘可能地自動化你的構建和部署過程。你最好的選擇是使用NAnt之類的東西建立一個自動的構建/部署腳本。您的腳本可以有針對您的每個環境的目標,例如

<project name="MyApp" xmlns="http://nant.sf.net/release/0.85/nant.xsd"> 
    <target name="DEV"> 
     <!-- execute any tasks needed to build the app, such as msbuild(1) --> 

     <!-- execute any tasks needed to build the tweak the config files, such as xmlpeek/xmlpoke(2) --> 

     <!-- execute any tasks needed to copy the now-built and configured project output the tweak the destination server, such as copy(3)--> 
    </target> 

    <target name="SIT">...</target> 
    <target name="UAT">...</target> 

</project> 

如果您對NAnt不熟悉,那麼啓動並運行並編寫腳本需要不到一天的時間。回報是立竿見影並持久的,因爲您永遠不必將VNC放入服務器並再次調整配置文件。

相關問題