MVC3通过TFS构建代理部署到bin而不是MVC4

时间:2013-01-07 15:36:41

标签: asp.net-mvc-3 tfs asp.net-mvc-4 tfs2010 tfsbuild

本地构建工作正常。一个构建服务器工作正常(不使用TFS构建)。

问题是TFS构建包装MVC3二进制文件,而不是MVC4所需。

SERVER 1:我们的TFS服务器只安装了MVC4(虽然我不认为这是必需的)。

SERVER 2:我们的TFS构建控制器只安装了MVC4。 (构建代理位于同一服务器上)。

注意:SERVER 12之前都安装了MVC3。

我排队一个新版本,转到SERVER 2(构建控制器服务器),我看到代理正在运行(TFS管理控制台)并创建了它的工作目录。

然而,工作目录最终包含MVC3二进制文件!然后将其丢弃在托管服务器上的放置位置,然后使用MVC3错误地部署它。

'SERVER 2'命令行中的MSBuild也将MVC3二进制文件添加到bin文件夹中。 GAC包含MVC4二进制文件。 (C:\的Windows \ Microsoft.NET \组件\ GAC_MSIL \ System.Web.Mvc \ v4.0_4.0.0.0__31bf3856ad364e35)

有问题的项目的web.config正确引用MVC4,System.Web.Mvc(v4.0.0.0)设置为复制本地。我已经广泛检查了MVC3参考。我没有理由怀疑代码,因为这适用于我们的遗留构建服务器(已安装MVC4)。

当然这一切都在我的机器上运行,发布包含bin文件夹中的正确MVC.dll。

从哪里可以获得MVC3?我能错过什么?

SHORT TERM FIX:在托管服务器上安装MVC4。

1 个答案:

答案 0 :(得分:0)

最后解决了这个问题,在包含system.web.mvc.dll(版本3)的程序文件中有一个Reference Assemblies文件夹。我删除了它,一切正常!

简单地说:“.NET 4.0在框架引用程序集的完成方式上做了很大的改变。”

此问题的答案提供了有关此文件夹的详细信息及其原因:Reference Assemblies folder and different assemblies with the same version