Обычно я задаю путь вывода для всех проектов в одном и том же месте в зависимости от конфигурации.Например, для релизных сборок все идет в / path / to / Release и для Debug в / path / to Debug.Затем я вручную редактирую файл проекта, чтобы включить отдельный файл целей, содержащий что-то вроде этого:
edit показывает, как использовать условия для выбора dll отладки / выпуска с префиксом
<-- file myDll.targets -->
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
<ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
<Reference Include="myDll_d">
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup Condition=" '$(Configuration)' == 'Release' ">
<Reference Include="myDll">
<Private>False</Private>
</Reference>
</ItemGroup>
</Project>
Затем в проект, который должен ссылаться на эту dll, включен файл целей:
<Import Project="myDll.targets"/>
Из-за Private=false
msbuild не будет пытаться что-либо копировать, он просто ищет myDll.dllи найдет его в выходном пути.
Это не особо чисто, но работает.Файл целей также можно изменить, чтобы он ссылался на разные платформы (x86 / x64).
Ваша первая идея, вероятно, состоит в том, что в основном используется, поскольку требует меньше хлопот - за исключением того, что проекты должны быть в одном решении.(насколько я знаю);