Web部署发布错误版本的程序集

k3d*_*vis 4 c# deployment visual-studio webdeploy

我有一个依赖System.Web.Http.WebHost于我的项目的Web API项目,我在该引用上设置了Copy Local = True,版本(在本例中)是5.2.3.0.

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

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

Lor*_*sen 14

在我的情况下,我发现正在部署错误版本的Autofac,即使引用了正确的版本并在本地运行时放入bin文件夹.我重新安装了NuGet包,即使这样也行不通.

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

  • 这种情况经常发生在我们身上。我们最终创建了预发布规则,该规则将在发布之前从目标位置删除 bin 文件夹。真令人气愤。令人困惑的是,微软在这样的关键环境问题上苦苦挣扎。 (2认同)