无法定义使用'dynamic'的类或成员,因为编译器需要输入'System.Runtime.CompilerServices.DynamicAttribute'类型

Ale*_*ski 38 .net c# asp.net asp.net-mvc dynamic

我正在尝试在我从GitHub获得的本地计算机上运行.NET MVC应用程序.

当我在Visual Studio上运行时,一切都符合,并打开一个新的浏览器窗口,其中包含错误:

CS1980:无法定义使用'dynamic'的类或成员,因为编译器需要类型'System.Runtime.CompilerServices.DynamicAttribute'

同一窗口中的编译器部分显示以下错误:

在此输入图像描述

我已经检查了谷歌,似乎是同样的错误.

这个人自己使用动态类型,另一方面我没有使用任何动态类型,这是由.NET的编译器自动生成的,我使用的是.net 4.5应该支持动态.

我尝试应用相同的解决方案(将所有System.Core引用更改为4.0),但问题是所有这些都已经是4.0版.

你知道我怎么解决这个问题?

小智 28

我在尝试迁移的项目上遇到了类似的错误.尝试将项目框架重新定位到一个或两个版本,一旦找到目标版本而没有收到错误,请重新定位回原来遇到问题的版本.

我在针对4.6.2的网站项目中得到了相同的错误,该项目引用了一些较旧的库,将其重新定位回4.5.1并解决了错误.我立即重新定位回4.6.2并没有再次遇到错误.


Ron*_*son 12

在 中看到了这个VS 2019。我排除并重新包含有问题的文件(在我的例子中为 _Layout.cshtml)并解决了问题。

  • 我不同意你的观点。我的解决方案适用于我的情况,并作为一种选项/可能性提供给任何可能像我一样通过谷歌搜索偶然发现该线程的人。如果我的解决方案是错误的,那么 brichins 的解决方案也是错误的,这基本上是同一件事,而且我没有看到你在唠叨那个人。 (4认同)
  • 在开发过程中,我们经常会遇到转移注意力的错误,尤其是在编译时。对于许多看到我怀疑的错误的人来说,这是其中之一。这实际上确实解决了问题,即使它是间接起作用的。 (2认同)

Sim*_*ver 8

我使用"传统"MVC应用程序(不是新的.NET Core/vNext应用程序)更新到VS2015.3后几天突然出现此错误.

原来这个错误可以是一个完整的红鲱鱼.

确保:

  • 你根本没有任何其他错误
  • 您已在输出窗口中检查了"输出"窗口中未显示的任何错误.
  • 确保没有任何冲突的引用

在我的情况下,我有一个打字错误导致错误,并由于某种原因触发了这个奇怪的'红鲱鱼'动态错误.

在此输入图像描述

我的修复是进入.csproj文件并将typescript工具版本更新为1.8(需要手动卸载项目和编辑).正如我所说,这与错误无关,但我提到了细节,因为其他人可能会遇到同样的问题.

我相信1.7对于打字稿模块系统不接受'None',而1.8则不接受'None',因此错误.


nmi*_*026 8

我犹豫是否要写这个答案,但对我来说,错误出现在 .cshtml 文件中。我关闭页面,重新构建,错误就消失了。最好总是先尝试简单的事情。


Jam*_*ins 7

我有同样的问题,但这里的答案都没有解决,但确实指出了正确的方向.我想我没有将我的机器上的.NET版本更新到新版本.安装之后,我回滚了目标框架(如建议的那样),重新定位了新的框架,还做了一些额外的事情:

  1. 通过在包管理器中运行它来重新安装所有包:

    update-package -reinstall

我还将我的项目与4.5工作的项目进行了比较并完成了这项工作:

  1. 打开我的项目文件并删除所有"BCL"相关元素.
  2. 在项目的NuGet包管理器中卸载了所有"BCL"包(猜测它不需要移动到4.5 + ......?)
  3. 删除了旧的软件包版本System.Net.Http,由于某种原因没有得到更新(请参阅web.config - 版本应该显示oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0").
  4. 必须重启VS.
  5. 重建解决方案.
  6. 错误现在消失了.;)

我为解决其他一些错误而做的另一件事是通过删除这里的所有文件来清除组件缓存:

C:\Users\{USERNAME}\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache\

[咆哮]这一切浪费了一整天.感谢MS因为偷了我生命中的另一天而修复了永远不会出现的毫无意义的问题.每次升级我总会得到一个惊喜,一个可爱的游戏,修复红鲱鱼.为那些升级旧项目的人发现这些冲突会不会受到伤害?当出现问题时,或许更好的错误跟踪?我怀疑那会很困难.也许甚至像AsmSpy这样的东西,但更高级,内置于VS?[/咆哮]


Fre*_*all 5

添加引用System.Dynamic.Runtime为我做了.