我只是试图从构建中获取没有输出,除了最后的错误/警告摘要.这不是一项艰巨的任务.
命令行:
msbuild.exe /nologo /verbosity:quiet /consoleloggerparameters:summary project.sln
Run Code Online (Sandbox Code Playgroud)
如下所述:http://msdn.microsoft.com/en-us/library/ms164311.aspx 似乎MSBuild无法正常工作 - 根本没有输出.with/verbosity:正常有一吨输出和最后一个有用的错误/警告摘要,有没有看到噪音的方法?
MSBuild报告随Studio Express 2013一起分发的版本12.0.21005.1.
第一个问题在这里大家好.
我正在处理的要求是一个小型测试应用程序,它通过串行端口与外部设备通信.通信可能需要很长时间,设备可以返回各种错误.
该设备在其自己的类中很好地抽象,GUI线程开始在其自己的线程中运行,并具有通常的打开/关闭/读取数据/写入数据基本功能.GUI也非常简单 - 选择COM端口,打开,关闭,显示数据读取或设备错误,允许修改和回写等.
问题是如何从设备类更新GUI?设备处理的数据有几种不同类型,因此我需要在GUI表单/线程类和工作设备类/线程之间建立一个相对通用的桥梁.在GUI到设备方向上,一切正常,在各种GUI生成的事件中,[Begin] Invoke调用打开/关闭/读/写等.
我在这里阅读了这个帖子(如何从C#中的另一个线程更新GUI),其中假设GUI和工作线程在同一个类中.Google搜索引发了如何创建委托或如何创建经典后台工作者,但这根本不是我需要的,尽管它们可能是解决方案的一部分.那么,是否有一个简单但通用的结构可以使用?
我的C#水平是温和的,我一直在编程我的所有工作生活,给出一个线索我会弄清楚(并回发)...提前感谢任何帮助.
在Stackoverflow上研究了Perl 需要的文档和其他类似的链接后,我仍然没有更聪明,必须错过一个相当简单的技巧.我在运行时加载一个模块并在其中调用子程序.问题是我不一定知道导出的子例程的名称,但必须有一个并且它被导出.
模块都看起来像这样,即.他们粗略地遵循从perlmonks.org获取的模板
package modules::Test;
use strict;
use Exporter;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
$VERSION = 1.00;
@ISA = qw(Exporter);
@EXPORT = (*TestSubSomeUnknownName);
@EXPORT_OK = qw(&TestSubSomeUnknownName);
%EXPORT_TAGS = ( ALL => [qw(&TestSubSomeUnknownName)]
);
sub TestSubSomeUnknownName
{
# return a hash reference
}
Run Code Online (Sandbox Code Playgroud)
然后我可以像这样访问子,假设我知道它的名字:
use Module::Load;
my $package = "modules::Test";
my $subr = "TestSubSomeUnknownName";
load $package;
# Call the subroutine
my $hashref = $package->$subr;
Run Code Online (Sandbox Code Playgroud)
但是,如果有人在包裹中拼错了名字或我不知道呢?解决方案似乎是使用其中一个EXPORT来查看其中的内容,但是如何才能完成?
在这个程序中,POE :: Wheel :: FollowTail适用于跟踪文件的尾部,它也在一个单独的线程中运行,以简单地监视编译作业的进度.
在InputEvent处理程序中有一个粗糙的正则表达式来提取编译结果,并且一切正常,但是我无法获得任何结果值,可以在此sub之外访问.即使我将结果变量放在全局范围内,也不会修改它们.
该程序包括一个运行编译作业的进程,另一个正在查看日志,以及主循环等待.
全球范围:
my $Pass = 0;
my $Done = 0;
Run Code Online (Sandbox Code Playgroud)
然后开始监控:
threads->create(\&StartWatcher);
Run Code Online (Sandbox Code Playgroud)
watch-log文件sub的位置如下所示:
sub StartWatcher
{
my $logfile = "filename.log";
# Create the logfile watcher
POE::Session->create
(
inline_states =>
{
_start => sub
{
$_[HEAP]{tailor} = POE::Wheel::FollowTail->new( Filename => $logfile, InputEvent => "got_log_line", );
},
got_log_line => sub
{
$Pass += () = $_[ARG0] =~ /^\d+.*vcproj \- 0 error\(s\), \d+ warning\(s\)/g;
$Done += () = $_[ARG0] =~ /^\d+.*vcproj \- \d+ error\(s\), \d+ warning\(s\)/g;
print …Run Code Online (Sandbox Code Playgroud)