您可以创建自定义配置并在该配置下为每个项目定义单独的输出目录。在这里查看有关如何设置的详细信息。
然后,您可以制作一个批处理文件,该文件将根据一些自定义逻辑放置垃圾箱,如下所示:
set msBuildExe=%WINDIR%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
set configName=%1
set pluginReportsDir=..\..\..\..\Wcf\Plugins\PluginReports
echo ---
echo Backup common PluginReports reports
rem Since this is a post build event, the Common PluginReports is already built
echo ---------------------------
robocopy %pluginReportsDir%\bin\%configName%\ %pluginReportsDir%\bin\ PluginReports.dll PluginReports.pdb
echo ---
echo PluginReports for Site 3
echo ---------------------------
call %msBuildExe% %pluginReportsDir%\PluginReports.csproj /p:Configuration=%configName%Plugins_Site3 /t:Rebuild /noconsolelogger
move /y %pluginReportsDir%\bin\%configName%\PluginReports.dll %pluginReportsDir%\bin\PluginReports_Site3.dll
move /y %pluginReportsDir%\bin\%configName%\PluginReports.pdb %pluginReportsDir%\bin\PluginReports_Site3.pdb
将批处理文件指定为构建后事件,它将复制文件。如果需要,它还可以执行过度构建。