ОК, мне удалось заставить это работать полностью.Благодаря ответам, представленным выше, я смог добавить некоторые команды MS Build в файл .csproj, чтобы скопировать соответствующие библиотеки DLL из различных папок в папку bin на основе текущей конфигурации сборки.Однако, поскольку это неуправляемые библиотеки DLL (т.е. не .NET), я не могу создать нормальные ссылки на них, и они не могут быть скопированы во время публикации.Я справился с этим, динамически добавив файлы в проект как «контент».
Решение состояло из трех частей.Во-первых, создайте группу элементов для файлов в верхней части файла .csproj (здесь я попытался использовать общие имена файлов, чтобы сделать его более понятным) с условиями, основанными на текущей конфигурации сборки:
<ItemGroup Condition="'$(Configuration)' == 'Debug'">
<_UnmanagedDLLs Include="Win32DLLs\*.dll" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)' == 'Release'">
<_UnmanagedDLLs Include="x64DLLs\*.dll" />
</ItemGroup>
Затем добавьте еще одну группу элементов, чтобы включить эти библиотеки DLL (как содержимое, а не ссылки) в сборку:
<ItemGroup>
<Content Include="@(_UnmanagedDLLs->'bin\%(Filename)%(Extension)')" />
</ItemGroup>
Наконец, в нижней части файла .csproj я делаю копию на AfterBuild
target:
<Target Name="AfterBuild">
<Copy SourceFiles="@(_UnmanagedDLLs)" DestinationFiles="@(_UnmanagedDLLs->'bin\%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
</Target>
Это означает, что я могу сделать отладочную публикацию для своего промежуточного окна Windows 32 и публикацию выпуска для своего производственного бокса x64, не используя папку bin из SVN.