【发布时间】:2011-06-22 12:33:13
【问题描述】:
我正在使用 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 运行时,设置会在合理的时间内运行,但是如果我调试测试,我会在调试输出中得到大量的跟踪噪音。大多数消息都以详细级别记录。
我对涉及的一些程序集进行了反思,发现在静态类 Microsoft.Data.Schema.Common.Diagnostics.TSDTrace、Microsoft.Data.Schema 中创建了一个名为“TSData”的 TraceSource。实用程序。
我已尝试将以下内容应用于 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 始终为真。我在跳,我错过了一些东西。最终我想从代码中禁用它,但我会接受涉及应用程序配置的解决方案。
编辑
我犯了一个错误,跟踪源实际上是我在上面修改过的“TSData”。我已在 app.config 中将日志级别设置为 Off,这阻止了输出出现在 Debug 输出中,但速度仍然相同。看来这个问题更具体到我正在尝试做的事情,所以我在原始问题中添加了更多细节。
【问题讨论】:
标签: .net msbuild trace system.diagnostics diagnostics