0

我正在尝试设置 TeamCity 来构建和部署 ASP.NET MVC 应用程序。

我的设置在使用 TeamCity 4.5 的其他服务器上成功运行,但新服务器正在运行 TeamCity 6,我无法让它按预期工作。

TeamCity 设法从源代码管理中获取文件,并且项目(Visual Studio 解决方案 2008 设置为“构建”)按预期构建和输出必要的文件。问题似乎出在我的工件路径上,因为输出文件没有复制到网站文件夹。

我的解决方案由十几个项目组成,其中“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/媒体, Web/ .aspx=>../../../../inetpub/wwwroot/staging, Web/ .asax=>../../../../inetpub/wwwroot /staging,teamcity-info.xml] [19:35:30]:[发布工件]发送文件 [19:35:32]:构建完成

来自运行 TeamCity 4.5 的其他一些服务器的日志使用不同的格式,每个发布的工件都有一行,我不确定这是否相关或仅仅是由于不同的日志格式。

一切似乎都在工作,但构建后没有文件放在我的网站文件夹中,我在这里遗漏了什么吗?任何帮助都感激不尽 :)

4

3 回答 3

1

我一直使用构建脚本来处理这种过程,因为您使用的是 TC6,您应该能够在执行复制/移动的 VS.NET 解决方案构建器之后添加第二个构建步骤。MSBuild 可能是执行此操作的首选脚本方法,但如果您只需要复制,则可以使用简单的控制台运行程序。使用脚本方法,您应该能够为部署目录使用绝对路径,该路径不应该像相对路径那样脆弱。

于 2011-02-01T19:50:30.760 回答
1

从 6.0 开始,TeamCity 不允许在服务器的工件目录之外发布工件(出于安全原因)。我认为这是你的情况。

在服务器日志 (TeamCity/logs/teamcity-server.log) 中应该有一个以“尝试在构建工件目录之外发布工件”开头的相关警告。

如果您不想将文件发布到某个特定位置,您可能应该创建一个单独的构建步骤,该步骤将通过 FTP 或其他方式将文件发送到所需位置。

您可能还想为http://youtrack.jetbrains.net/issue/TW-1558投票

于 2011-02-02T07:20:38.040 回答
1

为什么不看看 Albacorebuild。我用它来控制构建过程、运行测试、创建 ZIP 和 NuGet 包。更多信息和示例在这里:http ://daniel.wertheim.se/2011/07/14/continuous-integration-using-teamcity-rake-albacore-github-and-nunit-for-net-%E2%80%93 -第 3 部分/

于 2011-07-28T06:26:04.473 回答