У меня есть одно решение с интерфейсным проектом, тестовым проектом, доменным проектом и проектом данных. Когда я выпускаю, я просто публикую интерфейс, который не ссылается на Tests, поэтому он не компилируется.
Редактировать: Суть в том, что вы не хотите, чтобы это было частью вашего финального релиза. Вы можете достичь этого автоматически в VS, используя отдельный проект / сборку. Однако вы можете иметь его в той же сборке, но тогда просто не компилируйте этот код, если вы используете nant или msbuild. Хотя немного грязно, держите вещи в порядке, используйте отдельную сборку:)