2012-01-04 1 views
4

Прежде всего, я знаю, что это из-за плохих библиотек, но у меня нет кода для их исправления.Конфликт класса пространства имен

XXX.dll содержит класс Util в глобальном пространстве имен. Util.dll имеет пространство имен Util.

Когда я включаю оба .dlls, я не могу использовать пространство имен Util (ошибка 1 Пространство имен 'Util' в '.. \ Util.dll' конфликтует с типом 'Util' в '\ XXX.dll').

Поскольку оба объекта находятся в глобальном пространстве имен, я не вижу, как это может исправить.

Что является лучшим решением для этого? На данный момент я знаю, что могу сделать еще один .proj, который не будет содержать как DLL, так и классы переноса, которые мне нужны. Но это не так легко сделать, (

ответ

10

Вы должны быть в состоянии использовать extern aliases для этого - они позволяют эффективно квалифицировать ссылку, с которой сборка вы имеете в виду Энсон Horton имеет хорошую walkthrough для них

9

Да.. , вы можете решить свою проблему. Перейдите в подпапку References в своем проекте, ссылаясь на две сборки. Для сборки с глобальным Util щелкните правой кнопкой мыши и нажмите Properties. В Aliases вам необходимо иметь global. Измените это, например, на DLL1 или что-то еще. Теперь, если вы хотите использовать глобальный Util в файле, добавьте следующее до using заявления:

extern alias DLL;

Теперь вы можете использовать глобальную Util как то DLL.Util

1

Вам нужно будет использовать «ехЬегп псевдоним» особенность языка. Отъезд this запись в блоге от Anson Horton.

(или просто увидеть ответ Джона.)

1

Эта ошибка может также отображаться при upgrading a DevExpress project

  1. Закрыть Visual Studio
  2. Clear Temporary ASP.NET Files каталогов, сняв следующие папки:

    • C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\
    • C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\
    • C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\
    • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\
    • C:\Users\[your_user_name]\AppData\Local\Temp\Temporary ASP.NET Files\
    • Перезапустите World Wide Web Publishing служба (меню Пуск \ Настройка \ Панель управления \ Администрирование \ Services).
  3. Clear проекта бен и Obj папки и развертывание новых узлов, если это необходимо;

  4. Rebuild приложение
+1

Это не ошибка сборки, это конфликт имен, которые не могут быть решены с перестраивать. – watbywbarif

+1

@watbywbarif - Я понимаю вашу точку зрения, но иногда эта ошибка возникает из-за неиспользуемых старых версий '.dll'. Я просто рассмотрел этот сценарий. Я проверил эти шаги на сегодняшний день сам по той же ошибке – xameeramir

+0

Это проблема, и я делаю это, чтобы устранить проблему, подобную этой. – Greg