我有一个新的 .Net 4.5.2 Web API 应用程序(已检查这是目标框架),在 VS 2015 中创建。我已经引用了 System.Net.Http
,你可以看到版本是 4.0.0.0:
虽然我无法引用那个类,但我可以在对象资源管理器中浏览到它(我假设这使用了与.dll文件旁边同名的.xml文件)。
我已经尝试过以下方法(编辑:以及通常的重新启动VS和重建等):
- 删除并重新添加引用(从框架和扩展中 - 尽管我确定它应该是框架版本,但我变得绝望了)
- 从Nuget安装并引用我的本地包文件夹中的版本,似乎只是默认回到系统范围内的版本。
- 使用以下命令在Nuget PM中重新安装所有依赖项:
update-package -reinstall -ignoreDependencies
- 将程序集手动添加到web.config,将程序集手动添加到.csproj文件中
[编辑:解决方案:
]好的,我创建了几个新的VS Web API项目(和解决方案)来看看是否能够重现问题。最后,我创建了一个新的“Filters”文件夹,在其中创建了一个新的Filter
类,复制了我的简化原始内容,并且HttpRequestMessage
被识别了。反过来做了同样的事情(我的过滤器最初是在App_Code文件夹中创建的),它仍然有效。我认为可能有一个看不见的引用旧的System.Net.Http
,导致出现问题,即使我可能已经注释掉了调用它的代码,但某种方式它仍然被记住。这只是一个猜测。但无论如何,将其削减到最简单的形式,然后从那里开始是导致解决方案的最终方法。