我在尝试访问具有以下目标的可移植类库中存在/引用的某些对象时遇到了很多问题:
.NET Framework 4.5 ASP.NET Core 5.0 Windows 8 Windows Phone Silver Light 8 Xamarin Android Xamarin iOS
PCL用于多个设备和项目,但是,我现在需要将其集成到MVC 4.5 Web应用程序中。
我可以从Razor访问一些直接在PCL中定义的对象,但是这个对象已经难倒了;我有一个具有这样的属性的对象
public List< AnotherPCLObject> AnotherPCLObjectList {get; set;}
当我尝试访问该属性时,出现CS0012错误;类型列表<>在未引用的程序集中定义。您必须添加对程序集的引用,System.Collections,版本4.0.0.0,Culture neutral,PublicKeyToken = b03f5f7f11d50a3a'。
搜索一下,看起来这应该是我引用的标准程序集集中,这让我相信需要某种神奇的程序集映射?
以下是问题:
有没有办法将ASP.NET 4.5添加为目标,我追捕了几个小时但找不到办法。
如果在任何参考程序集目录中找不到System.Collections程序集,如何引用缺少的程序集。
如果用于映射装配的某种魔法,那么记录在哪里?
答案 0 :(得分:0)
如果您仍然遇到此问题,您应该可以通过将程序集引用添加到web.config的编译部分来解决它。
<compilation ...>
<assemblies>
<add assembly="System.Collections, Version 4.0.0.0, Culture neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</assemblies>
</compilation>
对于引用便携式程序集的针对4.6.1的MVC 5.2.3项目,我遇到了同样的问题。 Intellisense不适用于与Linq扩展相关的一些程序集,所以我不得不为System.Core添加一个引用。
希望有所帮助!