asp.net mvc 4网站拒绝建立团队城市

时间:2012-11-26 03:56:49

标签: asp.net asp.net-mvc-4 teamcity

我有一个带有teamcity的Windows Server 2003框,我用它作为构建/部署服务器。我检查了一个新的asp.net mvc 4项目,它出现了以下错误:

App_Start\BundleConfig.cs(2, 18): error CS0234: The type or namespace name 'Optimization' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)

Controllers\AccountController.cs(8, 7): error CS0246: The type or namespace name 'DotNetOpenAuth' could not be found (are you missing a using directive or an assembly reference?)

Global.asax.cs(7, 18): error CS0234: The type or namespace name 'Optimization' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)

Models\AccountModels.cs(4, 45): error CS0234: The type or namespace name 'Schema' does not exist in the namespace 'System.ComponentModel.DataAnnotations' (are you missing an assembly reference?)

App_Start\BundleConfig.cs(9, 44): error CS0246: The type or namespace name 'BundleCollection' could not be found (are you missing a using directive or an assembly reference?) 

我已经在那个盒子上安装了asp.net mvc 4,重新启动了机器并尝试了其他一切而没有任何运气。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

对我来说,我的CI服务器(TeamCity)不会通过Web平台安装程序获取MVC 4。不知道为什么。

因此,我检查了TC构建日志日志中的黄色警告,查找其尝试解析的引用。

对于每一个,我然后在项目/解决方案中查找相应的NuGet包并重新安装它。这将使用包还原进行设置,以便TeamCity / MSBuild在构建期间恢复它。

例如:

Update-Package WebGrease -Reinstall

MVC项目模板,虽然它使用NuGet包,但由于某种原因,它们并没有连接到整个包恢复机制,所以重新安装它们会强制这样做。实际上,我想你是通过其组成软件包安装MVC 4。

答案 1 :(得分:0)

我会关注的一些事情:

  1. 确保在构建期间正确地下拉NuGet包。 Documentation
  2. 确保项目仍未在某处引用旧的MVC 3程序集。也许nant / msbuild构建脚本正在复制旧程序集?

答案 2 :(得分:0)

我不确定这是否有用。但我有同样的问题。我试图做的是使用EnableNuGetPackageRestore我试图恢复它和一些导致问题的地方(从测试项目而不是MVC项目恢复nuget包。我不知道为什么但如果我发现我肯定会更新线程) 。我做的是我关注http://blog.jetbrains.com/teamcity/2013/08/nuget-package-restore-with-teamcity/的博客。再添加一个构建步骤NuGe​​t Installer帮我解决了问题。 (注意:如果您使用的是内部nuget包服务器,则需要在Sources中指定相同内容)。如果您还有问题,请告诉我,我可以提供任何帮助。快乐建筑!!