我有一个带有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,重新启动了机器并尝试了其他一切而没有任何运气。
有什么想法吗?
答案 0 :(得分:2)
对我来说,我的CI服务器(TeamCity)不会通过Web平台安装程序获取MVC 4。不知道为什么。
因此,我检查了TC构建日志日志中的黄色警告,查找其尝试解析的引用。
对于每一个,我然后在项目/解决方案中查找相应的NuGet包并重新安装它。这将使用包还原进行设置,以便TeamCity / MSBuild在构建期间恢复它。
例如:
Update-Package WebGrease -Reinstall
MVC项目模板,虽然它使用NuGet包,但由于某种原因,它们并没有连接到整个包恢复机制,所以重新安装它们会强制这样做。实际上,我想你是通过其组成软件包安装MVC 4。
路
答案 1 :(得分:0)
我会关注的一些事情:
答案 2 :(得分:0)
我不确定这是否有用。但我有同样的问题。我试图做的是使用EnableNuGetPackageRestore我试图恢复它和一些导致问题的地方(从测试项目而不是MVC项目恢复nuget包。我不知道为什么但如果我发现我肯定会更新线程) 。我做的是我关注http://blog.jetbrains.com/teamcity/2013/08/nuget-package-restore-with-teamcity/的博客。再添加一个构建步骤NuGet Installer帮我解决了问题。 (注意:如果您使用的是内部nuget包服务器,则需要在Sources中指定相同内容)。如果您还有问题,请告诉我,我可以提供任何帮助。快乐建筑!!