Вы хотите заменить /\D/
(не цифра) на ''
(пустая строка)
Regex r = new Regex(@"\D");
string s = Regex.Replace("(123) 455-2344", r, "");
Или, более кратко:
string s = Regex.Replace("(123) 455-2344", @"\D",""); //return only numbers from string
Это работает только в том случае, если на самом деле на сборку ссылается .dll, т.е. если у вас есть LibInterface.dll и LibImplementation.dll - и ваш код в А ссылается только на классы в LibInterface.dll, нет никакой возможности получить LibImplentation.dll на выходе для B (чисто).
Это также относится к любым произвольным файлам - т.е. если у вас есть Randon.myFile, связанный с проектом А, то это будет желаемая процедура: 1. Добавить как локальное копирование, или событие сборки в проект А (так появляется в выводе для проекта А) 2. В проекте Б установите "копировать локально" в проекте А исх. 3. Затем вы должны получить всё в выводе проекта A в проекте B (включая ваш файл) - но это не так.
Там может быть какая-то другая опция - "Copy Local - all" или что-то в этом роде. Это помогло бы VS поддержать IOC технику, и очистить абстракции.
.Я проделывал одну и ту же процедуру много раз, и нет необходимости повторно ссылаться на сборки вручную. Один простой способ проверить это:
Если сборка завершится успешно, все ссылки ОК.
]Если Lib.dll является библиотекой взаимодействия, то ее базовая dll не будет скопирована. В остальном я бы сказал, что это, вероятно, ошибка оператора, потому что вам определенно не нужно вручную ссылаться на зависимые управляемые сборки.