Одна вещь, которую вы можете сделать, это добавить условие в файл .csproj или .vbproj, который MSBuild будет проверять при выполнении сборки.
Условие будет проверять, происходит ли публикация, и проверять, является ли сборка отладочной сборкой, затем делать что-то вроде запуска внешнего инструмента или иным образом прерывать процесс сборки или вызывать его сбой.
Примером может быть что-то вроде этого:
<Choose>
<When Condition=" '$(Configuration)'=='Debug' ">
<Exec Command="C:\foo.bat" ContinueOnError="false" />
</When>
</Choose>
Где foo.bat - пакетный файл, который возвращает ненулевое значение, тем самым предотвращая публикацию.