2011-02-01 18 views
-1

我試圖設置TeamCity來構建和部署ASP.NET MVC應用程序。未發佈到IIS7文件夾的TeamCity輸出工件

我使用TeamCity 4.5在其他服務器上成功運行安裝程序,但新服務器正在運行TeamCity 6,並且無法按預期工作。

TeamCity管理從源代碼控制中獲取文件,並且項目(Visual Studio Solution 2008設置爲「Build」)構建並輸出必要的文件。問題似乎與我的工件路徑一樣,因爲輸出文件不會複製到網站文件夾。

我的解決方案由十幾個項目組成,其中「Web」項目在這種情況下很有趣。構建檢出目錄是C:\ TeamCity \ buildAgent \ work \ 7da320cebf0ee541,並且「Web」項目位於C:\ TeamCity \ buildAgent \ work \ 7da320cebf0ee541 \ Web

我已經設置了我的構建配置以下神器路徑(相對從檢出目錄包含該網站的文件夾):

Web/bin=>../../../../inetpub/wwwroot/staging/bin 
Web/Content=>../../../../inetpub/wwwroot/staging/Content 
Web/Views=>../../../../inetpub/wwwroot/staging/Views 
Web/Media=>../../../../inetpub/wwwroot/staging/Media 
Web/*.aspx=>../../../../inetpub/wwwroot/staging 
Web/*.asax=>../../../../inetpub/wwwroot/staging 

(我更../試圖以防萬一,但它並沒有發揮作用)。

這是輸出我從日誌

[19時35分29秒]得到:文物出版社(1S) [19時35分29秒]:[發佈器物] 路徑發佈: [Web/bin => ../../../../ inetpub/wwwroot/staging/bin, Web/Content => ../../../../ inetpub/wwwroot/staging/Content, Web/obj => ../../../../ inetpub/wwwroot/staging/obj, Web/Views => ../../../../ inetpub/wwwroot/staging/Views, Web/Media => ../../../../ inetpub/wwwroot/staging/Media, Web/.aspx => ../../。 ./../inetpub/wwwroot/staging,Web/ .asax => ../../../../ inetpub/wwwroot/staging,teamcity-info.xml] [19:35:30]: [出版工件]發送文件 [19點35分32秒]:體形完成

日誌從一些運行的TeamCity 4.5使用不同的格式中的其他服務器的,與針對每個工件的被髮布的管線,我不確定這是相關的還是僅僅是由於不同的日誌格式。

似乎一切正常,但構建後沒有文件放在我的網站文件夾中,我在這裏錯過了什麼嗎?任何幫助將不勝感激:)

+0

經過一些測試後,我意識到相對路徑不應該基於結帳目錄,但將其更改爲匹配構建代理文件夾(「../」x 8)doesn'幫助。 – 2011-02-01 12:13:55

+0

更新:將工件輸出到相對路徑「輸出」時,會創建文件夾並將文件正確複製到文件夾。這個問題似乎是因爲某些原因,我不能將文件複製到inetpub/wwwroot/staging文件夾中。 – 2011-02-01 12:56:19

回答

1

我一直使用構建腳本來處理這種過程,因爲你使用的是TC6,你應該可以在你的VS.NET解決方案構建器之後添加第二個構建步驟執行復制/移動。 MSBuild可能是這樣做的首選腳本方法,但如果您只需要複製,則可以使用簡單的控制檯運行程序。使用腳本化方法,您應該能夠使用部署目錄的絕對路徑,該路徑不應該與相對路徑一樣脆弱。

1

從6.0開始,TeamCity不允許在服務器的工件目錄之外發布工件(出於安全原因)。我認爲這是你的情況。

在服務器日誌(TeamCity/logs/teamcity-server.log)中,應該有一個以「嘗試在構建工件目錄之外發布工件」爲開始的相關警告。

如果你不想將文件發佈到某個特定的位置,你應該創建一個單獨的構建步驟,通過FTP或其他方式發送文件到所需的位置。

你也可以投票給http://youtrack.jetbrains.net/issue/TW-1558