2012-04-10 22 views
3

我一直在爲我們的網站開發構建腳本。該網站是一個經典的ASP Web應用程序與經典的ASP Web應用程序的文件夾中的一個asp.net網站。MSBuild - 一次執行所有配置轉換 - 並轉換其他文件

我們有不同版本的global.asa需要替換而不是不同的web配置。我們正在轉向持續集成環境,這對我來說仍然是新的。我寫了一個構建腳本來執行以下任務。

  1. 清除buildartifacts目錄(如果存在)。
  2. 使用任何配置傳入的方式構建解決方案文件。這將生成每個項目都在單獨文件夾中的輸出。
  3. 將文件複製到所需的文件夾結構中。
  4. 使用MSDeploy將結果打包爲同步。

我的第一個問題是這樣的......

當我運行MSBuild任務是這樣的...

<MSBuild Projects="$(SolutionFileName)" 
     Properties="Configuration=$(Configuration);OutDir=%(BuildArtifacts.FullPath)" /> 

它構建的Web應用程序,但不應用任何轉換。我會假定MSBuild會自動應用轉換。相反,我最終將在包含構建的輸出文件夾中包含所有3個配置文件。爲什麼是這樣?我已經做了一些搜索herehere,他們正在使用一個單獨的任務來執行轉換。如果Visual Studio可以應用轉換和Visual Studio使用MSBuild我會認爲MSBuild可以應用轉換? MSBuild配置不知道嗎?另外,如果必須單獨執行此操作,那麼如果文件夾結構的每個級別的多個文件夾中有多個配置文件,是否可以一次執行所有轉換?

我的第二個問題是...作爲一個經典的asp網絡應用程序,我們不能真正使用配置文件的這部分,因爲......以及我不知道經典的asp網絡應用程序將如何訪問配置文件?所以我們有不同版本的global.asa文件,通常會被手動替換。我想我可以做一些搜索/複製當時我們需要的特定的asa文件,但是有沒有辦法使用轉換來完成這個任務?

回答

0

關於轉換的問題......一旦我們用msdeploy整理了部署,我們發現msdeploy實際上會在部署上執行轉換。它將轉換數據存儲在使用該包創建的一個xml文件中。

0

也許這不完全是你所需要的。我正在使用XmlPreprocess tool進行配置文件操作。我爲多個環境使用一個映射文件。您可以通過Excel編輯映射文件。這是非常容易使用。

您可以使用Exec任務從MSBuild腳本調用它。