2011-02-01 17 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