0

我正在尝试使用 Visual Studio Team Services CI 构建,但在进行 WebActivator 调用的 Ninject 类方面遇到了问题。

此代码在我的 NinjectWebCommon.cs 中执行: 在此处输入图像描述

这使用 Visual Studio 在本地构建/运行良好。但是,当我将项目推送到 VSTS 并尝试运行构建时,我收到此警告(这不可避免地会导致预期的编译错误): 在此处输入图像描述

如果我注释掉上面显示的全局属性,则 CI构建成功

我很难准确指出问题出在哪里。错误消息很简单,但是 Visual Studio 和 VSTS 中的构建允许它在一个地方而不是另一个地方工作的区别是什么?我确信我可以通过在 Global.asax 中手动放置调用来防止这个问题,但这不是我想要的方向——Ninject 使用 WebActivator 调用是有原因的。

谢谢!

4

1 回答 1

1

如果不检查您的实际项目和 CI 流程,将很难给出明确的答案。

问题是在您的 CI 服务器上,缺少 WebActivatorEx 程序集。假设您的 CI 服务器从源代码管理中提取了解决方案的副本,您可以检查以下内容:

  1. 确保您的 CI 服务器在构建之前在解决方案上运行 nuget 恢复。
  2. 在您的 Web 项目中,仔细检查它的引用并确保 WebActivatorEx 是从“packages\WebActivatorEx”路径而不是“\bin\”路径引用的。
  3. 仔细检查您的 Web 项目中的 packages.config 并确保列出了 WebActivatorEx。这就是 nuget 知道为该项目恢复该包的方式。

如果您清理您的 bin 文件夹并在本地删除您的 packages 文件夹,您可能能够在您的计算机上复制该问题。

于 2016-08-25T21:24:17.793 回答