<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<!-- Generated by Apache Maven Doxia at 2017-04-28 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<title>Apache log4net &#x2013; Apache log4net: Building log4net - Apache log4net</title>
		<link rel="stylesheet" href="../css/bootstrap.min.css" type="text/css" />
		<link rel="stylesheet" href="../css/site.css" type="text/css" />
		<script type="text/javascript" src="../js/jquery.min.js"></script>
		<script type="text/javascript" src="../js/bootstrap.min.js"></script>
		<script type="text/javascript" src="../js/prettify.min.js"></script>
		<script type="text/javascript" src="../js/site.js"></script>
      <meta name="author" content="Nicko Cadell" />
    <meta name="Date-Revision-yyyymmdd" content="20170428" />
    <meta http-equiv="Content-Language" content="en" />
		<meta name="keywords" content="building log4net, log4net" />
				</head>
	<body class="composite">
		<a href="https://logging.apache.org/">
			<img class="logo-left" src="../images/ls-logo.jpg" alt="Apache logging services logo" />
		</a>
		<!--img class="logo-right" src="../images/logo.png" alt="Apache log4net logo" /-->
		<div class="clear"></div>

		<div class="navbar">
			<div class="navbar-inner">
				<div class="container-fluid">
					<a class="brand" href="http://logging.apache.org/log4net/">Apache log4net &trade;</a>
						<ul class="nav">
						<li>
					
				
				<a href="https://wiki.apache.org/logging" class="external" target="_blank" title="Logging Wiki">Logging Wiki</a>
			</li>
					<li>
					
				
				<a href="https://www.apache.org/" class="external" target="_blank" title="Apache">Apache</a>
			</li>
					<li>
					
				
				<a href="https://logging.apache.org/" class="external" target="_blank" title="Logging Services">Logging Services</a>
			</li>
					<li>
					
				
				<a href="https://github.com/apache/logging-log4net/" class="external" target="_blank" title="GitHub">GitHub</a>
			</li>
		</ul>
				</div>
			</div>
		</div>

		<div class="container-fluid">
			<table class="layout-table">
				<tr>
					<td class="sidebar">
						<div class="well sidebar-nav">
										<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-home"></i>Apache log4net</li>
																						<li class="none">
									<a href="../index.html" title="About">About</a>
					</li>
 																<li class="none">
									<a href="../download_log4net.cgi" title="Download">Download</a>
					</li>
 																<li class="none">
									<a href="../release/release-notes.html" title="Release Notes">Release Notes</a>
					</li>
 																<li class="none">
									<a href="../license.html" title="License">License</a>
					</li>
 								</ul>
			<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-file"></i>Documentation</li>
																						<li class="none">
									<a href="../release/features.html" title="Features">Features</a>
					</li>
 																<li class="none">
									<a href="../release/framework-support.html" title="Supported Frameworks">Supported Frameworks</a>
					</li>
 																<li class="none">
									<a href="../release/example-apps.html" title="Example Apps">Example Apps</a>
					</li>
 																<li class="none">
									<a href="../release/config-examples.html" title="Config Examples">Config Examples</a>
					</li>
 																	<li class="none active">
									<a href="../release/building.html" title="Building">Building</a>
					</li>
 																<li class="none">
									<a href="../release/faq.html" title="FAQ">FAQ</a>
					</li>
 																<li class="none">
									<a href="../release/howto/index.html" title="How Tos">How Tos</a>
					</li>
 																<li class="none">
									<a href="../release/sdk/index.html" title="SDK Reference">SDK Reference</a>
					</li>
 								</ul>
			<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-book"></i>Manual</li>
																						<li class="none">
									<a href="../release/manual/introduction.html" title="Introduction">Introduction</a>
					</li>
 																<li class="none">
									<a href="../release/manual/configuration.html" title="Configuration">Configuration</a>
					</li>
 																<li class="none">
									<a href="../release/manual/contexts.html" title="Contexts">Contexts</a>
					</li>
 																<li class="none">
									<a href="../release/manual/plugins.html" title="Plugins">Plugins</a>
					</li>
 																<li class="none">
									<a href="../release/manual/repositories.html" title="Repositories">Repositories</a>
					</li>
 																<li class="none">
									<a href="../release/manual/internals.html" title="Internals">Internals</a>
					</li>
 								</ul>
			<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-pencil"></i>For Contributors</li>
																						<li class="none">
									<a href="../mail-lists.html" title="Mailing Lists">Mailing Lists</a>
					</li>
 																<li class="none">
									<a href="../issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
					</li>
 																<li class="none">
									<a href="../source-repository.html" title="Repository">Repository</a>
					</li>
 																<li class="none">
									<a href="../integration.html" title="Continuous Integration">Continuous Integration</a>
					</li>
 								</ul>
			<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-cog"></i>Project Reports</li>
																						<li class="none">
									<a href="../rat-report.html" title="RAT Report">RAT Report</a>
					</li>
 								</ul>
			<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-info-sign"></i>Apache</li>
																						<li class="none">
					
				
				<a href="http://www.apache.org/" class="external" target="_blank" title="Home">Home</a>
					</li>
 																<li class="none">
					
				
				<a href="http://www.apache.org/licenses/" class="external" target="_blank" title="License">License</a>
					</li>
 																<li class="none">
					
				
				<a href="http://www.apache.org/foundation/sponsorship.html" class="external" target="_blank" title="Sponsorship">Sponsorship</a>
					</li>
 																<li class="none">
					
				
				<a href="http://www.apache.org/foundation/thanks.html" class="external" target="_blank" title="Thanks">Thanks</a>
					</li>
 																<li class="none">
					
				
				<a href="http://www.apache.org/security/" class="external" target="_blank" title="Security">Security</a>
					</li>
 																<li class="none">
					
				
				<a href="http://www.apachecon.com" class="external" target="_blank" title="Conferences">Conferences</a>
					</li>
 								</ul>
							</div>
						<div id="poweredBy">
															<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
				<img class="poweredBy" alt="Built by Maven" src="../images/maven-feather.png" />
			</a>
									</div>
					</td>
					<td class="content">
						<!-- Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership. 
The ASF licenses this file to you under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with 
the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. -->

    
        <a name="main"></a>
<div class="section" id="main">
<h2><a name="Building_Apache_log4net"></a>Building Apache log4net&#x2122;</h2>
            
<p>
                The log4net release builds are built using NAnt. Log4net can also be built
                using Visual Studio .NET 2008 or 2010.
            </p>
        
            <a name="vsnet"></a>
<div class="section" id="vsnet">
<h2><a name="Visual_Studio"></a>Visual Studio</h2>
                
<p>
                    Visual Studio .NET 2008 and 2010 are supported build platforms for log4net.
                </p>

                <a name="vsnet-2008"></a>
<div class="section" id="vsnet-2008">
<h2><a name="Visual_Studio_.NET_2008"></a>Visual Studio .NET 2008</h2>
                    
<p>
                        The log4net distribution includes a solution and project file
                        for Visual Studio .NET 2008. Open the <span class="code">log4net.vs2008.sln</span>
                        from the src directory in the distribution.
                    </p>
                    
<p>
                        The log4net project requires only the following references:
                    </p>
                    
<ul>
                        
<li>System</li>
                        
<li>System.Configuration</li>
                        
<li>System.Data</li>
                        
<li>System.Web</li>
                        
<li>System.XML</li>
                    </ul>
                </div>

                <a name="vsnet-2010"></a>
<div class="section" id="vsnet-2010">
<h2><a name="Visual_Studio_.NET_2010"></a>Visual Studio .NET 2010</h2>
                    
<p>
                        The log4net distribution includes a solution and project file
                        for Visual Studio .NET 2010. Open the <span class="code">log4net.vs2010.sln</span>
                        from the src directory in the distribution.
                    </p>
                    
<p>
                        The log4net project requires only the following references:
                    </p>
                    
<ul>
                        
<li>System</li>
                        
<li>System.Configuration</li>
                        
<li>System.Data</li>
                        
<li>System.Web</li>
                        
<li>System.XML</li>
                    </ul>
                </div>
            </div>

            <a name="nant"></a>
<div class="section" id="nant">
<h2><a name="NAnt"></a>NAnt</h2>
                
<p>
                    The log4net distribution is built using the NAnt tool.
                    A recent NAnt version 0.91 alpha2 is required to build log4net, this is 
                    available from <a class="externalLink" href="http://nant.sourceforge.net">nant.sourceforge.net</a>.
                </p>
                
<p>
                    To support building log4net for the SSCLI framework the NAnt configuration
                    files need to be updated to specify the SSCLI framework directory.
                </p>
                
<p>
                    To build log4net from the command line, change directory to the root of the
                    log4net distribution, ensure that the nant executable is in the
                    PATH, and then run the following command:
                </p>
                
<div class="syntax">
<div>
<pre class="code">
nant -buildfile:log4net.build compile-all</pre></div></div>
                
<p>
                    This command will build log4net for all the supported frameworks
                    that are available on the current machine. To list all the build
                    targets that are available run the following command:
                </p>
                
<div class="syntax">
<div>
<pre class="code">
nant -buildfile:log4net.build -projecthelp</pre></div></div>
                
<p>
                    Under windows the <span class="code">build.cmd</span> can be used 
                    to script the nant build. This can be called from a different
                    directory and will locate the correct log4net.build file to use.
                    For example:
                </p>
                
<div class="syntax">
<div>
<pre class="code">
build.cmd compile-all</pre></div></div>
            </div>

            <a name="sdk"></a>
<div class="section" id="sdk">
<h2><a name="SDK_Reference"></a>SDK Reference</h2>
                
<p>
		  <a class="externalLink" href="https://github.com/EWSoftware/SHFB">Sandcastle
		  Helpfile Builder</a> is used to build the log4net SDK
                    documentation.  Running it is currently not
		    integrated with the NAnt build process, you'll
		    have to open and run <tt>log4net.shfbproj</tt>
		    with SHFB manually.
                </p>
            </div>

        </div>
    

					</td>
				</tr>
			</table>
		</div>

		<div class="footer">
							<p>Copyright &copy; 2004-2017 <a class="external" href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.</p>
				<p>Apache log4net, Apache, log4net, the Apache feather logo, the Apache Logging Services project logo and the Built by Maven logo are trademarks of The Apache Software Foundation.</p>
				<p>Site powered by <a class="external" href="http://getbootstrap.com/">Twitter Bootstrap</a>. Icons from <a class="external" href="http://glyphicons.com/">Glyphicons Free</a>.</p>
			</div>
		</div>
	</body>
</html>
