Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 通过TFS构建代理将MVC3部署到bin而不是MVC4_Asp.net Mvc 3_Tfs_Asp.net Mvc 4_Tfsbuild - Fatal编程技术网

Asp.net mvc 3 通过TFS构建代理将MVC3部署到bin而不是MVC4

Asp.net mvc 3 通过TFS构建代理将MVC3部署到bin而不是MVC4,asp.net-mvc-3,tfs,asp.net-mvc-4,tfsbuild,Asp.net Mvc 3,Tfs,Asp.net Mvc 4,Tfsbuild,本地建筑很好用。一个构建服务器工作正常(不使用TFS构建) 问题是TFS构建打包的是MVC3二进制文件,而不是所需的MVC4 服务器1:我们的TFS服务器只安装了MVC4(尽管我认为无论如何都不需要) 服务器2:我们的TFS构建控制器只安装了MVC4。(生成代理位于同一台服务器上) 注意:server1和2之前都安装了MVC3 我对新生成进行排队,转到服务器2(生成控制器服务器),我看到代理正在工作(TFS管理控制台)并已创建其工作目录 但是,工作目录最终包含MVC3二进制文件!然后将其放置在托

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

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

服务器1
:我们的TFS服务器只安装了MVC4(尽管我认为无论如何都不需要)

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

注意:
server1
2
之前都安装了MVC3

我对新生成进行排队,转到服务器2(生成控制器服务器),我看到代理正在工作(TFS管理控制台)并已创建其工作目录

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

来自“服务器2”上命令行的MSBuild还将MVC3二进制文件添加到bin文件夹。GAC包含MVC4二进制文件。(C:\Windows\Microsoft.NET\assembly\GAC\U MSIL\System.Web.Mvc\v4.0\U 4.0.0\U 31bf3856ad364e35)

相关项目的web.config正确引用了MVC4,并且System.web.Mvc(
v4.0.0.0
)被设置为复制本地。我已经广泛地检查了MVC3参考资料。我没有理由怀疑代码,因为这在我们的遗留构建服务器(安装了MVC4)上工作

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

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


短期修复:在托管服务器上安装MVC4。

最终解决了这个问题,程序文件中有一个参考程序集文件夹,其中包含
system.web.mvc.dll
(版本3)。我删除了它,一切都正常

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


这个问题的答案提供了关于这个文件夹是什么以及它为什么存在的更多细节:。

我面临着同样的问题。您在哪个文件夹中找到引用程序集下的dll?里面有几个文件夹。