我有一个第三方库,它提供了一个System.Collections.Generic.IReadOnlyCollection类型,以便与.NET 4.0应用程序兼容。但是,如果将此库链接到.NET 4.5应用程序中,则会得到错误
解决这些冲突的一种方法是为您想要使用的库指定一个外挂别名,并使用这个别名来消除我们所引用的程序集的歧义。指定外挂别名需要单击项目的References文件夹中的库引用,按F4以显示属性网格,然后在“别名”字段中指定另一个名称。但是,问题是,Visual中的引用列表中没有出现mscorlib。试图手动添加它会导致错误。
因此,考虑到以上所述,问题是:既然我看不到,甚至不能将它添加到项目的引用列表中,那么我如何才能为mscorlib指定外部别名?
发布于 2014-12-21 12:53:22
答案与How to create an extern alias for System.Core?的行文相同
我们必须手动编辑项目的.csproj文件,然后查找列出项目所有引用的ItemGroup部分。在本节中,我们必须手动添加对mscorlib的引用,并指定我们想要使用的别名,如
<ItemGroup>
<Reference Include="mscorlib">
<Aliases>global, mscorlib</Aliases>
</Reference>
... other references
</ItemGroup>之后,我们可以转到发生错误的源文件,然后添加
extern alias mscorlib;文件的顶部。最后,无论何时出现错误“. 'System.Collections.Generic.IReadOnlyCollection‘类型都存在于.”我们只需指定mscorlib引用的完整命名空间,如
mscorlib::System.Collections.Generic.IReadOnlyCollection<double> bla;当然,这样长的行也可以通过在文件顶部指定一个使用指令来缩短,如
using ms = System.Collections.Generic;然后用它作为
ms.IReadOnlyCollection<double> bla;https://stackoverflow.com/questions/27589528
复制相似问题