Я использую движок MSBuild для запуска развертывания в проекте базы данных Team Server:
var propertyGroup = new BuildPropertyGroup();
propertyGroup .SetProperty("Configuration", "Release");
propertyGroup .SetProperty("TargetDatabase", <databasename>);
propertyGroup .SetProperty("UseSandboxSettings", "false");
propertyGroup .SetProperty("DeployToDatabase", "true");
propertyGroup .SetProperty("TargetConnectionString", LocalHostConnectionString);
new Engine().BuildProjectFile(<DBProjFile>, new[] { "Rebuild", "Deploy" }, propertyGroup);
Это выполняется в установочном приспособлении для набора модульных тестов.При запуске с использованием Resharper установка запускается в разумные сроки, однако, если я отлаживаю тесты, в выводе отладки я получаю огромное количество шума трассировки.Большинство сообщений регистрируются на подробном уровне.
Я размышлял над некоторыми из задействованных сборок и обнаружил, что существует TraceSource с именем "TSData", который создается в статическом классе Microsoft.Data.Schema.Common.Diagnostics.TSDTrace, Microsoft.Data.Schema.Utilities.
Я попытался применить следующее к app.config, который остановил любой вывод, отображаемый в окне отладки, но время выполнения не изменилось:
<system.diagnostics>
<sources>
<source name="TSData" switchName="foo" />
</sources>
<switches>
<add name="foo" value="Off"/>
</switches>
</system.diagnostics>
В классе ведения журнала есть этот маленький драгоценный камень:
if (TSDTrace.Settings._traceIfDebuggerAttached && Debugger.IsAttached)
{
TSDTrace.Settings._traceToDebugOutput = true;
TSDTrace.Settings._traceLevel = TraceLevel.Verbose;
}
Где _traceIfDebuggerAttached всегда имеет значение true.Я прыгаю, что я что-то пропустил.В конечном итоге я хотел бы отключить это из кода, но я бы согласился на решение, включающее конфигурацию приложения.
РЕДАКТИРОВАТЬ
Я допустил ошибку, источник трассировкиПо сути "TSData", который я исправил выше.Я установил для уровня журнала значение Off в app.config, что помешало выводу вывода в выводе отладки, но скорость осталась прежней.Похоже, что эта проблема более специфична для того, что я пытаюсь сделать, поэтому я добавил больше деталей к исходному вопросу.