TeamCity - Missing 'Microsoft.Web.Infrastructure'

本文关键字:Web Infrastructure Microsoft TeamCity Missing | 更新日期: 2023-09-27 17:59:12

我一直在浏览StackOverflow,探索解决我的问题的可能方案。由于某些原因,TeamCity无法找到"Microsoft.Web.Infrastructure",但我已安装了所有必需的.Net软件包。然而,我已经在本地运行了所有测试,在VisualStudio中构建项目会返回成功的构建。

这就是我正在经历的错误:

App_Start''NinjectWebCommon.cs(9,40):错误CS0234:命名空间"Microsoft.Web.Infrastructure"中不存在类型或命名空间名称"DynamicModuleHelper"(是否缺少程序集引用?)

我尝试过的解决方案

  1. 在Visual Studio中,一个StackOverflow线程指示我将引用"Microsoft.Web.Infrastructure"选项"Copy Local"设置为true。这返回了与上述错误相同的结果
  2. 我已经删除了"Microsoft.Web.Infrastructure"的所有引用,并重新安装了这个包,我还重新安装了Ninject。我没有指定具体的版本。同样,在本地构建是成功的,而不是远程——同样的错误也发生了

以前有人遇到过这样的问题吗?我还对GIT存储库做了一个新的克隆,恢复了所有的NuGet包(TeamCity也做了),它构建得非常好。

TeamCity - Missing 'Microsoft.Web.Infrastructure'

问完这个问题后,我继续调查。当我的持续集成服务器运行多个windows虚拟机时,由于TeamCity在这些虚拟机上对构建进行负载平衡,因此它们的一些配置与其他配置不同步。一些团队代码纯粹是用C++编写的,因此安装的Microsoft Visual Studio版本(Visual Studio Professional 2013)对于我的C#项目来说是不正确的版本。在尝试在一个选定的VM上使用Visual Studio打开项目后,我发现Visual Studio不理解csproj文件扩展名。

我安装了Visual Studio 2013 Ultimate——这是我在工作站上使用的版本——谢天谢地,它成功了。有时在我的项目中,当我请求构建时,它会使用较旧的文件,因为TeamCity会在本地缓存文件。我发现在VCS选项中将设置为"清理并重新下载"也解决了这个问题。