我有一个依赖于 System.Web.Http.WebHost
的 Web API 项目,在我的项目中,我在该引用上设置了 Copy Local = True,并且版本(在本例中) 是 5.2.3.0。
当我通过网络部署将项目发布到服务器时,发布了该程序集的旧版本 (5.2.2.x)。这似乎只影响某些人在他们发布时而不影响其他人。
我们在其他项目的其他程序集中遇到了同样的问题,所以这只是一个例子。我可以将受影响的程序集添加到服务器的 GAC 或其他东西,这样它就不会在受到如此影响的用户发布时死掉,但我想知道这种情况是如何发生的以及如何避免。
最佳答案
在我的例子中,我发现部署了错误版本的 Autofac,即使在本地运行时引用了正确的版本并将其放入 bin 文件夹中。我重新安装了 NuGet 包,但仍然没有用。
最终,我发现 obj\Release\Package\PackageTmp\bin
目录(在项目目录中)包含过时的版本,而我所做的任何操作都不会导致它更新。只需删除目录并让它重新生成即可解决问题。
关于c# - Web 部署发布错误版本的程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32657241/