mon*_*nty 7 .net c# visual-studio-2015
我有一个新的.Net 4.5.2(检查这是目标框架)Web API应用程序(在VS 2015中).我已经引用了System.Net.Http,你可以看到版本是4.0.0.0:
在我的过滤器/属性中,我试图引用命名空间中的HttpRequestMessage哪个System.Net.Http(我在文件的顶部有正确的使用),但我得到的消息是
类型'HttpRequestMessage'在未引用的程序集中定义.您必须添加对程序集'System.Net.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用
虽然我不能引用该类,但我可以在Object Exploerer中浏览它(我假设它使用.dll旁边的同名.xml文件).
我试过(编辑:以及通常重启VS和重建等):
update-package -reinstall -ignoreDependencies[编辑:解决方案:
好的,我创建了一些新的VS Web API项目(和解决方案),看看我是否可以重现这个问题.最后,我创建了一个新的"Filters"文件夹,Filter在那里创建了一个新类,复制了我的简化原文的内容,并且HttpRequestMessage被认可了.同样的事情反过来(我的过滤器最初是在App_Code文件夹中创建的)它仍在工作.我想也许有一个看不见的人提到了一个System.Net.Http在工作中投掷扳手的老人,尽管我可能已经注释掉了调用它的代码,不知何故它被记住了.这只是猜测.但无论如何,把它削减到最近的骨头并从那里开始是导致解决方案的最终方法.
如果您刚刚创建网站,但现在正在创建 Web 应用程序,请不要App_Code向其中添加文件夹或任何代码,因为每个类文件都将设置为“内容”(单击类,查看“构建操作”下的属性窗格),因此在应用程序的其余部分中不会被 Intellisense 拾取,或者您可以设置为“编译”,但在发布时有其自身的问题:请参阅Vishel Joshi 的博客了解所有相关信息它。