C#的结果是好的,当我调试,但我得到的错误,当我启动.exe文件

我在C#,NET 2.0工作。

当我调试我的代码,一切工作正常。 然而,当我创建EXE,事实并非如此。 我添加了一个记录器。 下面是一段我的代码:

string[] dllFiles = System.IO.Directory.GetFiles(getAddinDllPath(), "Begin_*.dll"); foreach (string dllFile in dllFiles) { Logger.Info("ThisMethod numberX"); if (!dllFile.EndsWith("someString.dll", StringComparison.InvariantCultureIgnoreCase)) { Assembly assembly = Assembly.LoadFile(dllFile); foreach (Type type in assembly.GetTypes()) { Logger.Info("ThisMethod numberY"); ...............

该getAddinDllPath()方法返回:

addinDllPath = Path.Combine(Path.Combine(myDocuments, "Visual Studio 2005"), "Addins") + "\\";

当我调试我的程序,文本'ThisMethod号Y'显示在日志文件中多次。

当我创建了exe文件并运行它,记录器看起来像这样:ThisMethod numberX底。 它从来没有谈到“ThisMethod numberY”。

这是为什么?

这里是我的记录:

类记录器{私人静态字符串路径= @“C:\用户\约翰\文件\项目\ MyLogger.txt”

public static string Path { get { return path; } set { path = value; } } public static void Info(string msg) { StreamWriter sw = File.AppendText(path); try { string logLine = System.String.Format( "{0:G}: {1}: {2}", System.DateTime.Now, @"INFO", msg); sw.WriteLine(logLine); } finally { sw.Close(); } } }


编辑:如果dllFiles是空的,那么一切都很好。 但是,如果文件存在,那么出现的问题。

编辑2:问题是在

Type type in assembly.GetTypes()

有人偷一个想法?

--------------解决方案-------------

如果"somePath"是相对于运行目录,然后你的exe文件可能被扫描的另一个目录=>发现没有.dll文件=>“ThisMethod numberY”不叫。

如果我的猜测是真实的-尝试在指定的绝对路径somePath

确保string dllFile in dllFiles给dll的正确地址及与您在代码中提到的字符串结尾,并确保日志文件是在结束时关闭。 你一定会看到它。

尝试使用IndexOf >=0没有EndsWith("someString.dll"有时候窃听2.可能是界定或其他装配移动类型的单/在这里描述的异常看MSDN GetTypes

我应该用

Assembly assembly = Assembly.LoadFrom(dllFile);

代替

Assembly assembly = Assembly.LoadFile(dllFile);

分类:C# 时间:2012-01-01 人气:0
本文关键词: 调试,日志记录
分享到:

相关文章

  • 如何禁用类的使用log4j的调试日志记录? 2013-02-26

    在我的log4j.xml,我有 <logger name="java.sql"> <level value="DEBUG" /> </logger> 但是使用这一点,还可以使记录为接口Resultset . 如果我想禁用日志记录这个接口,但仍希望有调试日志记录statement preparedstatement ,等...我怎样才能做到这一点? --------------解决方案------------- Log4j的不支持对

  • 什么调试日志记录工具可以从Javascript? 2013-03-01

    我想创建一个"通用"的调试日志记录功能检查的JS命名空间知名日志库. 例如,目前它支持Firebug的的console.log: var console = window['console']; if (console && console.log) { console.log(message); } 显然,这只能在Firefox在安装萤火虫/启动(这将也适用于其他浏览器Firebug的精简版). 基本上,我将提供一个JS库,我不知道什么样的环境就会被拉进去了,我希望能

  • 什么是Spring MVC中的调试日志记录 2013-07-19

    我的春天MVC不工作,我收到找不到错误的资源. 我听说过调试日志记录. 有什么事情,我可以打开,我可以看到更多的细节,哪里出了问题,或 它是什么我需要将只显示该消息的每一个文件,我很难在文件编码编程 --------------解决方案------------- Spring使用Apache的百科全书记录API,这反过来使用无论是内部的Java记录,或者log4j的(如果可用). 请参阅该文档为一个更全面的解释的一部分. "调试日志"是指这样的事实:春天确实在"调试级别&qu

  • 如何打开调试日志记录关闭时,log4j的,对于docx4j 2013-12-30

    我收到的时候我部署在JBoss AS7我的Maven / Spring应用程序并尝试上传一个文件DOCX下面的消息. 当我在应用程序的所见即所得的编辑器查看上传的文件的正文中显示的消息. 当我在码头在本地运行应用程序的消息不显示. 我包括Log4j和docx4j属性文件. 我不知道什么性质的,让我来切换调试日志记录中提到的错误,到目前为止,我想出空对网络搜索的docx4j类. 顺便说一句,我的应用程序没有使用log4j的/ docx4j XML文件,并从我读过这是一个非此即彼的设置. 如果我应该

  • WCF调试日志记录敏感信息 2014-11-02

    我期待到具有内WCF启用调试日志记录,尤其是哪些信息可以/会记录,以及是否有可以做,以减轻任何配置的安全隐患. 说,如果我们创建一个DataContract与Password是WCF操作的一部分财产,我需要知道,如果该属性将以明文写出,当日志记录已打开的请求和响应,以及是否服务异常任意层的将暴露任何这一点. 其他考虑因素是围绕可SSL或消息encrpytion防止这种记录,或任何特殊装订configuarations,行为或钩使用拦截并可能清理日志. 其原因是,客户端需要写入到磁盘上的日志不包含

  • 春天RestTemplate - 如何启用的请求/响应完整的调试/日志记录? 2012-11-24

    我一直在使用Spring RestTemplate了一段时间,我一直碰壁的时候我'尝试调试它的请求和响应. 基本上,我想看看同样的事情,因为我看到,当我使用卷曲的"详细"选项打开. 例如 : curl -v http://twitter.com/statuses/public_timeline.rss 将同时显示发送的数据和所接收的数据(包括标头,饼干等). 我也查了一些相关的帖子,如:如何登录春季RestTemplate回应? 但我没有设法解决这个问题. 这样做的一个方法是将真正改变

  • 难道多的调试日志记录慢我(的Grails)的Web应用程序了吗? 2013-03-20

    我的Grails Web应用程序目前记录了大量的调试信息到一个文件中,几乎每一个请求. 从你的经验,我应该关闭这个功能将其移动到生产环境之前(这将使它很难跟踪到,当然错误),还是有我的应用程序,即使有很多用户在同一时间的性能几乎没有影响? --------------解决方案------------- 记录肯定会减慢速度. 写入文件特别是极其缓慢. 创建字符串登录会对性能产生负面影响,即使过程. 我强烈建议你把这个注销. 如果你有问题,你的应用程序,那么你就不是生产开发环境中更好的调试. 我同意

  • 删除发布之前,所有调试日志记录来电:是否有工具来做到这一点? 2014-02-08

    据谷歌,我必须" 停用任何呼叫日志中的源代码的方法 "发布我的Android应用程序之前. 从出版物清单的第5摘录: 请确保您关闭记录和你建立你的应用程序发布之前禁用调试选项. 您可以通过删除调用登录您的源文件的方法禁用日志记录. 我的开源项目是大的,这是一个痛苦的我每次释放做手工. 此外,删除日志行可能是棘手的,比如: if(condition) Log.d(LOG_TAG, "Something"); data.load(); data.show(); 如果我评

  • 请推荐一个很好的调试日志记录框架ASP.NET具有良好的观众 2014-07-31

    首先 - 我已经看到了这个问题,但我是一个有点不同. 我需要的是一些框架调试信息记录. 这个信息将不会出现在生产环境中. 它将被用于跟踪性能问题和其它通用的错误. 特别是对于性能问题,所以这将是使用了很多与负载测试. 因此,我预计,日志都会有很多消息,并会通过他们的手,找到慢的人是不是一种选择. 起初我以为使用建立在ASP.NET的跟踪设施. 他们甚至有这个伟大的工具,这将是适合我的需求. 不幸的是,似乎ASP.NET跟踪基本上是有缺陷的,在不能依赖,尤其是在重负载下. :( 所以现在我需要别的

  • 在私有子类/手势检测器的Andr​​oid调试日志记录 2014-04-24

    我有一个是通过了所有MotionEvents在我的观点一个简单的手势检测的onTouchEvent()方法,每本教程: http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html 我的代码,吸引各地时,触摸屏的手指了一圈的示例: @Override public boolean onTouchEvent(MotionEvent ev) { // send the touch event to the

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.243 (s). 10 q(s)