Вы можете просто сослаться на любой внешний проект или целевой файл, добавив import
к вашему основному файлу проекта:
...
<!-- this is the default import for (c#) web project files -->
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />
<!-- import your custom project/target file here -->
<Import Project="MyCustom.targets" Condition="Exists('MyCustom.targets')" />
...
Добавление Condition
позволит создать ваш основной проект, даже если ваш пользовательский проект / целевой файл отсутствует, поскольку сборка выполняется в другой среде.
Я использую этот подход для запуска целей FxCop и StyleCop на моем локальном компьютере, но один и тот же основной файл проекта может быть создан без каких-либо изменений в моей промежуточной среде.
Обновление
Ваш комментарий говорит о том, что вы на самом деле ищете решение, которое должно работать наоборот: вы хотите выполнить некоторые шаги до и после построения вашего проекта без изменения самой конфигурации проекта.
В этом случае лучший способ - создать собственный проект для вызова сборки вашего веб-проекта. Это может выглядеть примерно так:
<Project DefaultTargets="MyTargetAfterBuild">
<!-- some Project attributes omitted for readability -->
<Target Name="MyTargetBeforeBuild" ContinueOnError="false">
<Exec Command="svn export" />
</Target>
<Target Name="Build" DependsOnTargets="MyTargetBeforeBuild">
<MSBuild Projects="MyWebProject.csproj" Targets="Build" Properties="Configuration=Release" >
</MSBuild>
</Target>
<Target Name="MyTargetAfterBuild" DependsOnTargets="Build">
<Exec Command="powershell.exe .\MyCustomScript.ps1" />
</Target>
</Project>
Вас может заинтересовать этот ответ по похожему сценарию с более подробным примером.