Bazinga, давайте на примере:
Допустим, я создал супер-пупер САПР приложение под названием PupkinCAD. И я решил предусмотреть возможность написания плагинов под мое приложение, поэтому я создал библиотеку Vasya.dll. В моём приложении есть свое окно с сообщением. И я когда я делал библиотеку, то создал пространство имен Windows в котором создал класс MessageBox со статическим методом Show. Вот мне так захотелось! И я когда это делал, то совершенно не смотрел на стандартные пространства имён. И это нормально!
И вот вы решили написать мега плагин под мое приложение - вы создаете проект и добавляете ссылку на Vasya.dll и где-то в коде решили использовать мое окно с сообщением. НО! У вас есть еще ссылка на PresentationFramework.dll, так как вы использовали в своем плагине обычные окна. В коде, где использовалось стандартное окно и планируется использовать мое окно есть ссылки на пространства имён:
using System.Windows;
using PupkinVasya.Windows;
Вы пишите в коде:
MessageBox.Show("Hello world");
и при попытке компиляции получаете ту самую ошибку о конфликте имён. Ну, вам повезло - еще до попытки компиляции IDE вам сообщит об ошибке.
Вот тут Вам и придется применять один из двух подходов, которые я описал в первом ответе.
А вообще - в любой книжке по C# об этом написано. Я конечно вас понимаю - сам до сих пор ни одной не прочитал, поэтому можете просто погуглить. Например
вот.
P.S. Не забывайте нажимать кнопку "Решение", если получили нужный вам ответ