I have read documentation once more in deep and tried again with fresh sources 
from svn.
 
I have created new CF2.0 project (target device WindowsCE, CF 2.0, project 
type: class library) and added all source codes as mentioned in documentation.
Still no succes, StackFrame class used in LocationInfo.cs is not a part of CF. 
So I added some #if !NETCF to not use this class in CF build.
But some other classes are using StackFrame defined in LocationInfo 
(StackTraceDetailPatternConverter and StackTracePatternConverter). Because of 
this, I have detached there classes from CF project and skipped them in 
PatternLayout static constructor by #if !NETCF.
 
Compilation error count decreased significantly, so I did last reparations in 
FileAppender (CF doesn't support friendlyname for mutex) and 
RollingFileAppender (GetLastWriteTimeUtc not supported in CF) and it compiles 
without problems !!!
 
According to source code I guess that CF version is not built during 
development and changes in code even aren't checked against compact framework 
(!), what is surprising - nobody need to use log4net on WinCE or similar 
embedded/mobile platform?
If someone from development team is interested, I can provided CF project file 
with all my modifications in existing code.
 
Radovan Raszka


________________________________

Od: Radovan Raszka [mailto:ras...@hasam.cz] 
Odesláno: 11. února 2010 12:33
Komu: Log4NET User
Předmět: RE: Problem compile log4net for NETCF 2.0


even when compiled sucessfully, it has some unacceptable side effects. It 
compiles using .NET 2.0, not using CF 2.0 what leads that some .NET 2.0 
libraries are deployed to my Win CE device. It is not possible as disk space is 
insufficient. So I finally compiled it from cmd line using CF 2.0, but 
resulting DLL doesn't work - see my code:
 
log4net.Appender.RollingFileAppender fa = new 
log4net.Appender.RollingFileAppender();

fa.AppendToFile = true;

fa.File = "hh.log";

fa.Layout = new log4net.Layout.PatternLayout("%date{dd-MM-yyyy HH:mm:ss} 
[%5level] %message%n"); <-- here is Exception thrown saying: Could not load 
type 'System.Diagnostics.StackFrame' from assembly 'mscorlib, Version=2.0.0.0, 
Culture=neutral, PublicKeyToken=969DB8053D3322AC'.

fa.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Date;

fa.Threshold = log4net.Core.Level.Debug;

fa.ActivateOptions();

log4net.Config.BasicConfigurator.Configure(fa);

log4net.ILog log = log4net.LogManager.GetLogger(this.GetType());

It seems that there is still dependency on StackFrame class which is not a part 
of CF 2.0. Was anybody able to compile working log4net for CF 2.0 ? I looks 
like vey tricky task...
RR
 

Reply via email to