&引用;类型或命名空间名称。。。“找不到”;生成.NET应用程序时出错

&引用;类型或命名空间名称。。。“找不到”;生成.NET应用程序时出错,.net,build,.net,Build,我有网络解决方案(MVC5)。在这个解决方案中,控制台应用程序也很少。 我可以在本地构建完整的解决方案,没有任何错误。 但在TC上,我无法构建Web解决方案(但可以构建所有控制台应用程序和类库)。 我犯了这样的错误: error CS0246: The type or namespace name 'HttpRequestMessage' could not be found (are you missing a using directive or an assembly reference?

我有网络解决方案(MVC5)。在这个解决方案中,控制台应用程序也很少。 我可以在本地构建完整的解决方案,没有任何错误。 但在TC上,我无法构建Web解决方案(但可以构建所有控制台应用程序和类库)。 我犯了这样的错误:

error CS0246: The type or namespace name 'HttpRequestMessage' could not be found (are you missing a using directive or an assembly reference?)
error CS0246: The type or namespace name 'HttpRequestMessage' could not be found (are you missing a using directive or an assembly reference?)
error CS0246: The type or namespace name 'AuthenticationHeaderValue' could not be found (are you missing a using directive or an assembly reference?)
在不同的文件中只能找到这3个实体。 我可以看到引用的System.Net、System.Net.Http、System.ServiceModel.Channel程序集。我确信(从构建日志)它们是从4.5中引用的(所有使用4.5构建的项目)


什么问题?

TeamCity是否正在为您下载NuGet软件包


您可能需要在配置中添加
NuGet安装程序
build步骤。只要把它指向你的.sln文件,它就会为你抓取所有的包。

在你的代码中搜索这些类型,并找出它们来自哪个程序集。然后检查包含该代码的VisualStudio项目的引用。您还可以直接检查.csproj文件。查找不在Visual Studio项目/解决方案目录中的具有“提示路径”的引用。如果您引用的文件不在项目目录中,那么它可能也不在项目的版本控制存储库中。因此,除非该程序集恰好存在于TeamCity运行的服务器上的某个位置,并且该程序集文件所在的目录也位于TeamCity服务器运行所在用户的系统路径上,TeamCity在尝试运行构建任务时将无法找到该文件。

问题出在引用中。 未正确引用System.Http和System.Http.Net。 解决方案-删除引用并再次添加它们


谢谢

请随意拒绝我的编辑,或者自己编辑。但实际上,这并不是C#、TeamCity或ASP.NET MVC5所特有的。这只是一个普通的.NET构建错误。