.NET4.0中不同dll上的相同引用

时间:2011-09-07 09:17:44

标签: .net reference linqbridge

我在现有项目中添加了一个引用(LinqBridge.dll),引用与下面的内容相冲突。

  

错误74“C:\ Program Files”中存在“System.Action”类型   (86)\参考   Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ mscorlib.dll'和   'G:\ Projects \ Test1 \ Test.UI \ Bin \ LinqBridge.dll'G:\ Projects \ Test1 \ Test.UI \ App_Code \ Tools \ UrlMap.cs 50 88 G:... \ Test.UI \

解决此问题的最佳方法是什么?

提前致谢,

我在这个问题上发现了一些相关内容,但我没有说明我应该做些什么。

With NAnt, How to use C# 3.0 compiler while targetting .NET 2.0 runtime?

Reference 2 dlls using the same namespace in vb.net 3.5 project?

2 个答案:

答案 0 :(得分:2)

你可以etern aliases。这允许您在编译项目时定义完全限定类型。

  

转到解决方案资源管理器。展开项目的“引用”选项卡   您可以看到引用的程序集列表。点击   您希望分配别名的程序集。现在看看   “别名”属性的属性窗口。请注意默认值   价值是“全球的”。将其更改为您希望的任何内容。

在代码中,您将使用别名来使用完全限定的命名空间引用命名空间。

using linqBridge::System.Action;

本质上,在编译项目时,它会在命令行上使用/r开关。

/r:linqBridge=LinqBridge.dll

答案 1 :(得分:0)

您必须为LinqBridge.dll的引用分配extern alias,并通过该别名在程序中引用其类型,例如: bridge::LinqBridge.Types.Foo,或者使用像

这样的using指令
using LinqBrigdeTypes = bridge::LinqBridge.Types ;