Существующие ссылки на разные библиотеки в .NET4.0 - PullRequest
0 голосов
/ 07 сентября 2011

Я добавил ссылку (LinqBridge.dll) в существующий проект, и ссылки конфликтуют, как показано ниже.

Ошибка 74 Тип 'System.Action' существует в обоих C: \ Program Files (X86) \ Ссылка Сборки \ 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 \

Как лучше всего решить эту проблему?

Заранее спасибо,

Я нашел что-то связанное с этим вопросом, но я не понял, что именно я должен делать.

С помощью NAnt, Как использовать компилятор C # 3.0 при настройке времени выполнения .NET 2.0?

Ссылочные 2 библиотеки используют одно и то же пространство имен в проекте vb.net 3.5?

Ответы [ 2 ]

2 голосов
/ 07 сентября 2011

Вы можете вечные псевдонимы . Это позволяет вам определять полностью определенные типы при компиляции проекта.

Перейдите в Solution Explorer. Разверните вкладку «Ссылки» вашего проекта так, что вы можете увидеть список ссылочных сборок. Нажми на сборка, которую вы хотите присвоить псевдониму. Теперь посмотри в Окно свойств для свойства "Псевдонимы". Обратите внимание, что по умолчанию значение является «глобальным». Измените его на что угодно.

В коде вы должны ссылаться на пространство имен, используя полное пространство имен, используя псевдоним.

using linqBridge::System.Action;

По сути, при компиляции проекта используется переключатель /r в командной строке.

/r:linqBridge=LinqBridge.dll
0 голосов
/ 07 сентября 2011

Вам нужно будет присвоить внешний псевдоним вашей ссылке на LinqBridge.dll и ссылаться на его типы в вашей программе через этот псевдоним, например, bridge::LinqBridge.Types.Foo, или с помощью директивы using, например

using LinqBrigdeTypes = bridge::LinqBridge.Types ;
...