title author date CreateTime categories
WPF 调试 获得追踪输出
lindexi
2018-08-10 19:16:51 +0800
2018-05-16 14:51:53 +0800
WPF 调试

在 WPF 开发中,如果把一个程序发布出去,但是发现有些地方诡异,除了看日志外,如果需要拿到程序实时的输出,可以使用跟踪输出 ,本文告诉大家如何拿到 WPF 的跟踪输出。

如果有关注项目的宏,就会发现默认在 DEBUG 和 RELEASE 都有一个宏,Trace 这个宏就是用来程序信息跟踪。

因为来讲原理很无聊,还是用一个例子告诉大家这个调试方法是如何使用。

首先需要下载一个软件,通过这个软件可以用来输出。

官网:DebugView

调试日志大师(DebugView的增强版)-CSDN下载

下载完成直接打开就好,然后开始创建一个空白的 WPF 程序,在按下按钮的时候添加信息,说按下按钮。

创建的 WPF 使用简单的界面,直接放一个按钮

     <Button HorizontalAlignment="Center" Content="点击"
Click="ButtonBase_OnClick"
VerticalAlignment="Center"></Button>

在后台代码,添加输出

        private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
Trace.WriteLine("德熙点击按钮");
}

这时尝试运行一下代码,点击一下按钮,可以看到 VisualStudio 的输出显示了。

但是如果把这个程序发布出去,千万不要问我这么诡异的程序会有用户,我自己的图床做的那么漂亮都没有用户。用户没有 VisualStudio 那么如何获得刚才的输出?

刚才是不是打开了一个软件,尝试在 VisualStudio 找到刚才 WPF 输出的文件夹,双击打开刚刚的程序,这时点击一下,看看 DebugView 显示什么

所以在程序多写一些 Trace ,这样用户说程序很诡异就可以快速使用 DebugView 在用户那里看到程序的输出。

如果发现自己的程序没有输出,那么右击项目属性,看看下面是否取消

参见:

DebugView 调试入门 - CSDN博客

C# Logging using Trace and DebugView

Viewing WPF Trace Output Outside of Visual Studio

2018-8-10-WPF-调试-获得追踪输出的更多相关文章

  1. 01 mybatis框架整体概况(2018.7.10)-

    01 mybatis框架整体概况(2018.7.10)- F:\廖雪峰 JavaEE 企业级分布式高级架构师课程\廖雪峰JavaEE一期\第一课(2018.7.10) maven用的是3.39的版本 ...

  2. Visual Studio 原生开发的10个调试技巧(二)

    原文:Visual Studio 原生开发的10个调试技巧(二) 我以前关于 Visual Studio 调试技巧的文章引起了大家很大的兴趣,以至于我决定分享更多调试的知识.以下的列表中你可以看到写原 ...

  3. .Net程序调试与追踪的一些方法

    前言 作为一个.net开发工程师,不管是在写桌面程序.服务程序或web程序,在开发阶段,我们必须非常熟悉vs的动态调试技能,当然web程序可能还需要调试前端的脚本或样式,这不在本文的讨论范围.本文主要 ...

  4. 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H)

    目录 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛链接 竞赛题目 总结 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛 ...

  5. 富士康的盈利秒杀99%的A股公司:3星|《三联生活周刊》2018年10期

    三联生活周刊·最美的数学:天才为何成群到来(2018年10期) 本期专题是数学和成都,我都跳过去没看.其他内容也还有点意思. 总体评价3星. 以下是本期一些内容的摘抄,#号后面是kindle电子版中的 ...

  6. 10个调试Java的技巧

    调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序.本文介绍了Java程序员必知的10个调试技巧, ...

  7. js调试模式控制台输出信息

    js调试模式控制台输出信息.console.log

  8. Linux中一个文件10行内容,如何输出5-8内容到屏幕

    题目是这样的,Linux中一个文件10行内容,如何输出5-8内容到屏幕首先我们模拟一下这样的环境: [root@localhost question]# pwd /root/question [roo ...

  9. 申请Office 365一年免费的开发者账号攻略(2018年10月份版本)

    要进行Office 365开发,当然需要有完整的Office 365环境才可以.为了便于广大开发人员快速地启动这项工作,微软官方给所有开发人员提供了免费的一年开发者账号   那么如何申请Office ...

随机推荐

  1. Hdu 1299

    Diophantus of Alexandria Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

  2. GitHub的注册与使用

    1. 注册账号: 地址: https://github.com/输入账号.邮箱.密码,然后点击注册按钮. 2. 初始设置 注册完成后,选择Free免费账号完成设置 3.验证账号 新建一个仓库 发现邮箱 ...

  3. golang数组 排序和查找

    package main import "fmt" func BubbleSort(arr *[5]int){ fmt.Println("排序前arr=",(* ...

  4. CSS基础教程:群组化选择器

    常常我们的CSS 样式中会有好几个地方需要使用到相同的设定时,一个一个分开写会是一件满累人的工作,重覆性太高且显得冗长,更不好管理....在CSS 语法的基本设定中,就可以把这几个相同设定的选择器合并 ...

  5. HttpClient实现远程调用

           在项目中,我们常常遇到远程调用的问题,一个模块总是无法单独存在,总需要调用第三方或者其他模块的接口.这里我们就涉及到了远程调用. 原来在 ITOO中,我们是通过使用EJB来实现远程调用的 ...

  6. Vue. 之 npm安装Element

    Vue. 之 npm安装Element 前提: 相关运行环境以搭建完成,例如:Node.Npm等.    假如我的项目目录如下: D:\DISK WORKSPACE\VSCODE\CDS\cds-ap ...

  7. layers.py cs231n

    如果有错误,欢迎指出,不胜感激. import numpy as np def affine_forward(x, w, b): 第一个最简单的 affine_forward简单的前向传递,返回 ou ...

  8. CF274D

    Lenny had an n × m matrix of positive integers. He loved the matrix so much, because each row of the ...

  9. js单选按钮的默认值

    function SelectWindow(str) { initradio('PhysiotherapyOptionsTable.Sex',sex);       } function initra ...

  10. PHP进阶与redis锁限制并发访问功能示例

    <?php /** * Redis锁操作类 * Date: 2017-06-30 * Author: fdipzone * Ver: 1.0 * * Func: * public lock 获取 ...