C# 使用RazorTemplates库时出错:';CS0012:类型';系统属性';在未引用的程序集中定义';

C# 使用RazorTemplates库时出错:';CS0012:类型';系统属性';在未引用的程序集中定义';,c#,razor,C#,Razor,在某些机器上,通过RazorTemplates执行razor模板可以正常工作 在其他方面,我收到以下消息: 模板编译异常 error CS0012: The type 'System.Attribute' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKey

在某些机器上,通过RazorTemplates执行razor模板可以正常工作

在其他方面,我收到以下消息:

模板编译异常

error CS0012: The type 'System.Attribute' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
信息:

  • 这在运行在.NET4.7上的WPF应用程序中
  • 程序集引用了System.Runtime.4.3.0\lib\net462\System.Runtime.dll(v4.1.1.0)
  • 但是,在运行时,此程序集不会显示在“模块”列表中

属性对象似乎同时存在于System.Runtime和mscorlib中。

System.Runtime是.Net Framework的一部分,在框架安装期间安装在GAC中

发生这种情况可能有两个原因:

  • 它不在机器上
  • 这是错误的版本
  • 对于计算机,在检查其.Net运行时的版本和/或检查GAC中的此文件和版本时,此操作失败

    缺少框架,请安装它。:-)

    如果计算机有一个版本,但不是预期的版本,请执行以下操作之一:

  • 安装正确的框架版本
  • 在配置文件中使用

  • 看起来这是win10和RazorTemplates库之间的一个潜在问题

    最后,我从RazorTemplates切换到RazorEngine:

    这里有一页解释了如何通过解析器解决问题:


    不幸的是,这并不是很简单,否则我会解决它:)-机器安装了.net framework 4.7.2,并且该文件存在于GAC中,在工作的机器和不工作的机器上-System.Runtime在我们的解决方案中作为nuget包引用,但该文件未加载到模块中。如前所述,属性类存在于mscorlib中,因此缺少此文件不会影响我找到的任何东西:将程序集->添加到配置中。这将是你的app.config,但不是编译问题。。。。所以感觉像是在拉伸。在那之后,是->再次,这是一个延伸,因为这是关于VS和开发者包(和4.5.X不是4.7),但我确实发现我的4.7文件夹有系统的外观。运行时在其中,再次VS盒VS部署的机器。。。所以这两个问题都像是一个延伸。为了证实我的假设——这是部署机器上的运行时问题,而不是开发机器上的编译时问题?如果在部署的机器上运行,这些机器上没有VS?所有机器上都没有安装VS。不幸的是,这个问题发生在一些人身上,而在其他人身上却没有发生。我还没有弄清楚决定因素到底是什么。我将尝试一下配置更改,看看会发生什么。感谢您花时间调查。所有计算机都没有安装VS。你是说有些人会吗?如果是的,他们在工作吗…?很好找到乔恩·巴克