2015-09-18 78 views
3

我有一个Web API项目,它对System.Web.Http.WebHost有依赖关系,在我的项目中,我已经在该参考上设置了Copy Local = True,并且版本(在本例中)是5.2.3.0。Web部署发布程序集的错误版本

当我通过web部署将项目发布到服务器时,发布此程序集的较旧版本(5.2.2.x)。这似乎只影响某些人在发布时而不是其他人。

我们已经遇到了与其他项目中的其他程序集相同的问题,所以这就是一个例子。我可以将受影响的程序集添加到服务器的GAC或其他内容中,以便在受影响的用户发布时不会死亡,但我想知道这是怎么发生的以及如何避免它。

+0

我也有这个问题,除了与Autofac。这是VS 2015吗? –

+0

@Loren是的,尽管一些受影响的开发人员也在使用VS 2013,所以它似乎没有特别与IDE版本绑定。 – k3davis

回答

11

就我而言,我发现部署了错误版本的Autofac,即使在本地运行时引用了正确的版本并将其放入bin文件夹。我重新安装了NuGet软件包,甚至无法使用。

最终,我发现obj\Release\Package\PackageTmp\bin目录(在项目目录中)包含过时的版本,并且我所做的任何操作都不会导致它更新。只需删除目录并让其重新生成即可解决问题。

+1

我试过重新安装Nuget,所有的软件包,没有任何帮助。花了4个小时拉出我的头发后,我找到了你的答案。它解决了我的问题。谢谢! – Misiu

+0

我有一个与System.Web.Http 5.2.2 - > 5.2.3类似的问题,并在Visual Studio 2015中执行Clean从obj中删除了PackageTmp文件夹。我们现在建议我们的团队在每次发布前执行清理。 – Stewart

相关问题