1) Вы можете переключаться между ссылками для разных конфигураций сборки, если вы делаете это вручную, редактируя файл .csproj.
Файл csproj представляет собой скрипт MSBuild, который представляет собой XML. Если вы просматриваете его, вы должны найти элемент , который содержит набор элементов . Вы можете добавить условие к одному из этих ссылочных элементов, например так:
<Reference Condition=" '$(Configuration)' == 'Debug' " Include="System.Drawing" />
Атрибут Include может содержать полное строгое имя сборки, которое может не обязательно отличаться для сборок отладки и выпуска вашего двоичного файла. В этом случае вы можете добавить элемент , чтобы включить путь к .dll.
<Reference Include="assembly strong name">
<HintPath>c:\LibraryStuff\Debug\Library.dll</HintPath>
</Reference>
Ваш путь подсказки также может быть относительным:
<HintPath>..\..\LibraryStuff\Debug\Library.dll</HintPath>
[Отказ от ответственности: я никогда не делал этого со ссылками, хотя, я не могу гарантировать, что не будет проблем. Я быстро проверил его, и он, кажется, работает нормально, хотя Visual Studio отображает обе ссылки независимо от того, какую конфигурацию сборки вы выбрали (хотя она создает только конфигурацию для соответствующего типа конфигурации). Он также помещает значок предупреждения на второй, если у них совпадающие имена, но компиляция, кажется, работает нормально.]
Если у вас есть проблемы, вы можете попробовать просто иметь одну ссылку с двумя разными узлами HintPath и поместить условное в путь подсказки.
2) При условии, что у вас есть .pdbs и исходный код в правильных местах и в доступном месте, вы сможете просто отлаживать прямо в библиотеку, просто войдя в код, даже если вы ссылаются только на DLL-файл.