Для обсуждения я предполагаю, что у вас есть каталог проекта, содержащий файл вашего решения, файл проекта "RealLibrary \ RealLibrary.csproj" (ваша "настоящая" библиотека с зависимостями) и "MockLibrary \ MockLibrary.csproj". "file (ваша" фиктивная "библиотека с пустыми реализациями).
Если я правильно понимаю, вы хотите легко «поменять» MockLibrary на RealLibrary в своем решении, и наоборот.
Самый простой / хакерский способ сделать это, предполагая, что ваше решение (и зависимые проекты) настроены на поиск проекта "RealLibrary.csproj", - это переименовать каталог "RealLibrary" (не важно, к чему) и переименуйте каталог «MockLibrary» в «RealLibrary» и переименуйте «MockLibrary.csproj» в «RealLibrary.csproj». Это эффективно «обманет» ваше решение и зависимые проекты при загрузке «фиктивной библиотеки», даже если они ссылаются на «реальную библиотеку».
Несколько более сложное (и, возможно, более чистое) решение состоит в том, чтобы фактически изменить ваши файлы "sln" и "csproj", чтобы они ссылались на "MockLibrary.csproj" вместо "RealLibrary.csproj". В файле «sln» вам нужно изменить путь к проекту в разделе вверху:
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RealLibrary", "RealLibrary\RealLibrary.csproj", "{E1714F9A-E1D9-4132-A561-AE2B4919391C}"
EndProject
Вам необходимо изменить этот путь "RealLibrary \ RealLibrary.csproj" на "MockLibrary \ MockLibrary.csproj". Если вам нужна полнота, вы также можете изменить имя (или, возможно, просто использовать общее имя, например «Библиотека», для имени).
Аналогично, в зависимых файлах csproj вам нужно найти все экземпляры узла «ProjectReference», где вы ссылаетесь на «RealLibrary.csproj», и изменить путь. Эти разделы выглядят так:
<ProjectReference Include="..\RealLibrary\RealLibrary.csproj">
<Project>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Project>
<Name>RealLibrary</Name>
</ProjectReference>
Вы могли бы относительно легко написать несколько сценариев для выполнения этого обмена. Тем не менее, я думаю, что здесь есть более глубокая проблема, которую можно решить более непосредственно. Я опубликую это как отдельный ответ, но я хотел, чтобы вы сначала получили тот ответ, который вы искали.