相同的MSBuild文件,本地计算机和CCNet上的结果不同

时间:2012-12-11 16:47:03

标签: asp.net iis msbuild cruisecontrol.net ccnet-config

背景

我正在使用以下内容:

  • VS 2012
  • .NET 4.5应用程序,包括MVC4应用程序,C#Domain应用程序和NUnit项目。
  • 自定义MSBuild文件
  • 在构建服务器上运行的CruiseControl.NET

我有以下构建目标:

  • 清除:删除buildartifacts目录
  • Init:创建一个空白的buildartifacts目录
  • 编译:编译解决方案
  • 测试:运行NUnit测试
  • 包:创建用于部署的ZIP包
  • 部署:将程序包部署到远程IIS服务器

问题

  • 当我从本地计算机运行构建时,它会完美地打包和部署。
  • 当CCNet运行相同的构建目标时,文件似乎已部署

尝试的决议/潜在的潜在客户

  • 我在PowerShell中从两台计算机上运行了相同的目标,并且没有看到任何错误或警告。
  • 因为我告诉CCNEt覆盖框架以将其指向我已复制到构建服务器的.NET 4.5文件,我在运行MSBuild时使本地计算机指向相同的文件,但我的本地构建仍然工作和部署
  • 在Visual Studio中,我确保所有内容文件都标有“内容”的构建操作和“始终复制”的“复制到输出”设置。

守则

1 个答案:

答案 0 :(得分:3)

事实证明,这是一个完全不相关的问题。

在对两个构建日志进行差异后,我注意到构建服务器工作副本包含不再存在的旧文件。这让我发现问题最终导致存储库没有更新。

CCNet收到的subversion错误未注册为错误 结果,我从未获得最新版本的存储库,因此所有文件都被破坏了。

该错误与this StackOverflow question有关,关于尝试使用tortoisesvn进行更新时的sqlite错误。我的解决方案是简单地删除构建服务器的工作副本,重新创建文件夹,然后执行svn checkout。