Hello,

First let me say that I love Nant. My sincere thanks to all those involved in its creation and support.

I'm currently evaluating Nant for use in a daily build scenario at my company. A lot of our projects are ASP.NET applications written in VB.NET (for example http://www.wereldcontact.nl). Currently we're in the process of switching to C#.

When evaluating Nant, I made a buildscript for a copy of ASP.NET forums which is a C# project (http://http://www.communityserver.org/ - see attached file forum.build). I found it very easy to create a buildscript. I only had to make sure that I build my targets in the correct order and that the references to the DLL's were correct. So far, so good. I was very impressed.

However, then I tried to build a script for one of our own projects written in VB.NET (see attached file intranet.build). Suddenly I have to deal with imports and references to standard .NET assemblies (like System.DLL). I still haven't got this script working (something about not being able to compile a line which has an Enum statement - which should be included in System.DLL).

So what's up? Why the difference between the C# style of projects and the VB.NET ones? Is it related to Nant or is the VBC compiler just more troublesome in comparison to the CVC compiler?

I would love some pointers into why my intranet.build isn't working. I would really like for someone to point out what is necessary in a VB-style ASP.NET project for a correct compilation.

Anyway, I'm using one of the later builds (no more than 10 days old now).

If someone could point me in the direction, I would be able to write a FAQ on how to compile VB ASP.NET projects using Nant (just my little contribution to the Nant-community).

Anyway, enough ranting and raving. Have a great weekend everyone!

Kind regards,

Wilbert van Dolleweerd
Software Developer at http://www.we-do-it.nl

<?xml version="1.0"?>
<project name="Agrifirm Intranet" default="Web" xmlns="http://nant.sf.net/schemas/nant-0.85.win32.net-1.0.xsd";>

	<!-- Project specific options -->
 	<property name="VSS_InternalFolder" value="$/Projects/Webapps (nieuw)/Agrifirm/IntranetSolution/AgrifirmIntranet" /> 	
 	<property name="VSS_WorkingFolder"  value="C:\Projects\WebApps\agrifirm\IntranetSolution\Intranet" /> 	
 	<property name="DLL"								value="AgrifirmIntranet.DLL" />
 	<property name="debug"							value="true"/>

	<!-- Settings for SourceSafe can be moved to another include -->	 	
 	<property name="VSS_INIPath"  value="\\ilse\sourcesafe\srcsafe.ini" /> 		
 	<property name="VSS_User"			value="wilbert" />
 	<property name="VSS_Password" value="wilbert" />
 	
 	<!-- Settings for sending / receiving e-mail can be moved to another include -->
 	<property name="E-mailFrom" value="[EMAIL PROTECTED]" /> 	
 	<property name="E-mailTo"		value="[EMAIL PROTECTED]" /> 	 	
 	<property name="MailHost"		value="post.demon.nl" /> 	 	 	
 	
 	<!-- General settings for the .NET FrameWork and NANT can be moved to another include -->
	<property name="nant.settings.currentframework" value="net-1.1" />
 	<property name="nant.onsuccess" value="onsuccess"/>
	<property name="nant.onfailure" value="onfailure"/>
 	
 	<record name="${VSS_WorkingFolder}\build.txt" level="Info" action="Start"/> 
 	
 	<!-- 
	<vssget
		dbpath="${VSS_INIPath}"
		path="${VSS_InternalFolder}"
		localpath="${VSS_WorkingFolder}"
		user="${VSS_User}"
		password="${VSS_Password}"
		recursive="true"
		replace="true"
		writable="false"
  />
  -->
   
	<target name="Web" description="Start compiling the website.">	
		<vbc target="library" output="${VSS_WorkingFolder}/bin/${DLL}" debug="${debug}" rootnamespace="SiteUpdater" >
      <imports>
				<include name="System" />
				<include name="System.Collections" />
				<include name="System.Configuration" />
				<include name="System.Data" />
				<include name="System.Drawing" />
				<include name="System.Drawing" />
				<include name="Microsoft.VisualBasic" />
				<include name="System.Diagnostics" />
				<include name="System.Web" />
				<include name="System.Web.UI" />						
				<include name="System.Web.UI.WebControls" />
				<include name="System.Web.UI.HtmlControls" />
				<include name="System.Web.Security" />
				<include name="System.Data.SqlClient" />
				<include name="System.ComponentModel" />
				<include name="System.IO" />
				<include name="System.Web.Caching" />
				<include name="System.Security.Cryptography" />
				<include name="System.Text" />
				<include name="System.DirectoryServices" />
				<include name="System.Web.SessionState" />
				<include name="System.Security" />
				<include name="System.Security.Principal" />
      </imports>
      		
      <references>      
          <include name="System.dll" />
          
          <include name="System.Data.dll" />
          <include name="System.Configuration.Install.dll" />
          <include name="System.DirectoryServices.dll" />          
          <include name="System.Drawing.dll" />
          <include name="System.Management.dll" />          
          <include name="System.Web.dll" />
          <include name="System.XML.dll" />
          <include name="Microsoft.VisualBasic.dll" />

          <include name="${VSS_WorkingFolder}/bin/eWorld.UI.DLL" />
          <include name="${VSS_WorkingFolder}/bin/FreeSMTP.Net.DLL" />
          <include name="${VSS_WorkingFolder}/bin/Microsoft.Web.UI.WebControls.dll" />
          <include name="${VSS_WorkingFolder}/bin/SU_WebControls.dll" />
          <include name="${VSS_WorkingFolder}/bin/richtextbox.dll" />
      </references>									
      
			<sources>						
				<include name="${VSS_WorkingFolder}/**/*.vb"/>																											
				<!--
				<include name="${VSS_WorkingFolder}/site/*.vb"/>
				<include name="${VSS_WorkingFolder}/site/**/*.vb"/>																								
				<include name="${VSS_WorkingFolder}/siteupdater/*.vb"/>																
				<include name="${VSS_WorkingFolder}/siteupdater/**/*.vb"/>																						
				<include name="${VSS_WorkingFolder}/modules/*.vb"/>																
				<include name="${VSS_WorkingFolder}/modules/**/*.vb"/>																	
				-->
			</sources>
    </vbc>
  </target>  


	<target name="onfailure">	
	  <record name="${VSS_WorkingFolder}\build.txt" action="Close"/>
	
		<mail from="${E-mailFrom}" 
					tolist="${E-mailTo}" 
					subject="Build failed" 
					mailhost="${MailHost}">
			<files>
				<include name="${VSS_WorkingFolder}\build.txt" />
			</files>  																						
		</mail>	
	</target>


	<target name="onsuccess">    	    
		<echo message="Send mail of succesfull build."/>	  			        	
		<mail from="${E-mailFrom}" 
					tolist="${E-mailTo}" 
					subject="Build was a succes" 
					mailhost="${MailHost}">
		</mail>
	</target>
	                	
</project>	
<?xml version="1.0"?>
<project name="We do IT Forums" default="ASPNetForums" xmlns="http://nant.sf.net/schemas/nant-0.85.win32.net-1.0.xsd";>

	<property name="nant.settings.currentframework" value="net-1.1" />
 	<property name="debug" value="true"/>
 	<property name="localbuilddir"		value="C:\Projects\WebApps\Telligent\Forum\Web\bin" /> 	
 	<property name="remotebuilddir"		value="C:\Projects\WebApps\Telligent\Forum\build" />
 	<property name="VSSworkingdir"		value="C:\Projects\WebApps\Telligent\Forum" /> 	
 	<property name="VSSworkingdirWeb"	value="C:\Projects\WebApps\Telligent\Forum\Web" /> 	 	
 	<property name="documentationdir"	value="C:\Projects\WebApps\Telligent\Forum\build\doc" /> 	 	
	<property name="fxcop.project"		value="Forum.fxcop"/>
	<property name="fxcop.result"			value="fxcop-results.xml"/>	
	<property name="buildlog"					value="buildlog.txt"/>	
	<property name="MailAddressAdministrator"	value="[EMAIL PROTECTED]"/>		
 	<property name="nant.onsuccess" value="onsuccess"/>
	<property name="nant.onfailure" value="onfailure"/>

  <record name="${remotebuilddir}\${buildlog}" level="Info" action="Start"/>
  
	<vssget
		user="wilbert"
		password="wilbert"
		localpath="${VSSworkingdir}"
		recursive="true"
		replace="true"
		writable="false"
		dbpath="\\naomi01\VSS_DB\srcsafe.ini"
		path="$/Projects/Webapps/WeDoIt Forumsol/ASP.NET Forums"
  />
  
	<vssget
		user="wilbert"
		password="wilbert"
		localpath="${VSSworkingdirWeb}"
		recursive="true"
		replace="true"
		writable="false"
		dbpath="\\naomi01\VSS_DB\srcsafe.ini"
		path="$/Projects/Webapps/WeDoIt Forumsol/ASPNetForums"
  />
    
	<target name="components" description="Start compiling the components layer." depends="">	
		<csc target="library" output="${localbuilddir}/ASPNetForums.Components.dll" debug="${debug}">
			<sources>
				<include name="components/**/*.cs"/>
				
				<exclude name="components/components/blockedipaddress.cs"/>
				<exclude name="components/components/censorship.cs"/>
				<exclude name="components/components/encryption.cs"/>
				<exclude name="components/components/exceptions.cs"/>
				<exclude name="components/components/forumimage.cs"/>
				<exclude name="components/components/geographictimezone.cs"/>
				<exclude name="components/components/geographictimezone.cs"/>
				
				<exclude name="components/enumerations/accesscontrolentry.cs"/>
				<exclude name="components/enumerations/loginuserstatus.cs"/>
				<exclude name="components/enumerations/messages.cs"/>
				<exclude name="components/enumerations/nextprevmessagesposition.cs"/>
				<exclude name="components/enumerations/passwordrecovery.cs"/>
				<exclude name="components/enumerations/permission.cs"/>
				<exclude name="components/enumerations/userpasswordformat.cs"/>
				<exclude name="components/enumerations/userpasswordformat.cs"/>
				
				<exclude name="components/webservices/forumservice.cs"/>
				<exclude name="components/webservices/userservice.cs"/>
				<exclude name="components/webservices/security/*.cs"/>

				<exclude name="components/censorships.cs"/>				
				<exclude name="components/forummessages.cs"/>				
				<exclude name="components/nntp.cs"/>		
				<exclude name="components/blockedipaddresses.cs"/>						
				
				<exclude name="components/nntp/*.cs"/>		
										
			</sources>
    </csc>
  </target>
  
	<target name="controls" description="Start compiling the webcontrols layer." depends="components">	
		<csc target="library" output="${localbuilddir}/ASPNetForums.Controls.dll" debug="${debug}">
      <references basedir="${localbuilddir}">
          <include name="ASPNetForums.Components.dll" />
          <include name="FreeTextBox.dll" />          
      </references>					
			<sources>
				<include name="controls/**/*.cs"/>
				
				<exclude name="controls/admin/blockedipaddressadmin.cs"/>		
				<exclude name="controls/admin/censorshipadmin.cs"/>		
				<exclude name="controls/admin/forumadmin.cs"/>		
				<exclude name="controls/admin/forumpermissionadmin.cs"/>		
				<exclude name="controls/admin/forumpruningadmin.cs"/>		
				<exclude name="controls/admin/massemailingadmin.cs"/>		
				<exclude name="controls/admin/nameadmin.cs"/>		
				<exclude name="controls/admin/rankadmin.cs"/>		
				<exclude name="controls/admin/reportadmin.cs"/>		
				<exclude name="controls/admin/roleadmins.cs"/>		
				<exclude name="controls/admin/selectforumdropdownlist.cs"/>		
				<exclude name="controls/admin/selectrankdropdownlist.cs"/>		
				<exclude name="controls/admin/selectreportdropdownlist.cs"/>		
				<exclude name="controls/admin/selectroledropdownlist.cs"/>		
				<exclude name="controls/admin/selectservicedropdownlist.cs"/>		
				<exclude name="controls/admin/selectstyledropdownlist.cs"/>		
				<exclude name="controls/admin/selectuserdropdownlist.cs"/>		
				<exclude name="controls/admin/serviceadmin.cs"/>		
				<exclude name="controls/admin/servicescheduleadmin.cs"/>		
				<exclude name="controls/admin/sitesettingsview.cs"/>		
				<exclude name="controls/admin/smileyadmin.cs"/>		
				<exclude name="controls/admin/styleadmin.cs"/>		
				<exclude name="controls/admin/useradmin.cs"/>		
				<exclude name="controls/admin/userroleadmin.cs"/>		
				
				<exclude name="controls/admin/ui/userroleadmin.cs"/>

				<exclude name="controls/moderation/movepost.cs"/>		

				<exclude name="controls/user/createuser2.cs"/>		

				<exclude name="controls/utility/safehtmlvalidator.cs"/>		
						
				<exclude name="controls/miscstyles.cs"/>		
				<exclude name="controls/myforums.cs"/>		
				<exclude name="controls/privatemessage.cs"/>		
						
			</sources>
    </csc>
  </target>
  
	<target name="SQLDataprovider" description="Start compiling the dataprovider layer." depends="components, controls">	
		<csc target="library" output="${localbuilddir}/ASPNetForums.SQLDataprovider.dll" debug="${debug}">
      <references basedir="${localbuilddir}">
          <include name="ASPNetForums.Components.dll" />
      </references>							
			<sources>
				<include name="data providers/**/*.cs"/>			
			</sources>
    </csc>
  </target>

	<target name="ASPNetForums" description="Start compiling the website." depends="SQLDataprovider">	
		<csc target="library" output="${localbuilddir}/ASPNetForums.dll" debug="${debug}">
      <references basedir="${localbuilddir}">
          <include name="ASPNetForums.Components.dll" />
          <include name="ASPNetForums.Controls.dll" />          
          <include name="Freetextbox.dll" />                    
          <include name="Metabuilders.Webcontrols.Masterpages.dll" />                              
          <include name="Microsoft.Web.UI.Webcontrols.dll" />                              
          <include name="Microsoft.Web.UI.Webcontrols.dll" />  
          <include name="ASPNetForums.SQLDataprovider.dll" />                                                  
      </references>									
			<sources>
				<include name="web/**/*.cs"/>						
				
				<exclude name="web/activetopics.aspx"/>						
				<exclude name="web/calendar.aspx"/>						
				<exclude name="web/postattachment.aspx"/>						
				<exclude name="web/printpost.aspx"/>						
				<exclude name="web/privatemessage.aspx"/>						
				<exclude name="web/rss.aspx"/>						
				<exclude name="web/unansweredtopics.aspx"/>						
				<exclude name="web/viewonline.aspx"/>						

				<exclude name="web/admin/blockedipaddressadmin.aspx"/>						
				<exclude name="web/admin/censorshipadmin.aspx"/>						
				<exclude name="web/admin/default-frames.aspx"/>						
				<exclude name="web/admin/forumpruningadmin.aspx"/>						
				<exclude name="web/admin/manageblockedipaddresses.aspx"/>						
				<exclude name="web/admin/managemember.aspx"/>						
				<exclude name="web/admin/managereports.aspx"/>						
				<exclude name="web/admin/manageservices.aspx"/>						
				<exclude name="web/admin/managestyles.aspx"/>						
				<exclude name="web/admin/manageusers.aspx"/>						
				<exclude name="web/admin/nameadmin.aspx"/>						
				<exclude name="web/admin/navigation-frames.ascx"/>						
				<exclude name="web/admin/rankadmin.aspx"/>
				<exclude name="web/admin/reportadmin.aspx"/>
				<exclude name="web/admin/serviceadmin.aspx"/>
				<exclude name="web/admin/servicescheduleadmin.aspx"/>
				<exclude name="web/admin/smileyadmin.aspx"/>
				<exclude name="web/admin/styleadmin.aspx"/>
				<exclude name="web/admin/useradmin.aspx"/>
				<exclude name="web/admin/userroleadmin.aspx"/>
										
				<exclude name="web/moderate/default-frames.aspx"/>
				<exclude name="web/moderate/moderateforumsplitview.aspx"/>
				<exclude name="web/moderate/moderationhistory.aspx"/>
				<exclude name="web/moderate/profile.aspx"/>
				<exclude name="web/moderate/showpost.aspx"/>
				<exclude name="web/moderate/thread-join.aspx"/>
				<exclude name="web/moderate/thread-move.aspx"/>
				<exclude name="web/moderate/thread-split.aspx"/>

				<exclude name="web/search/advancedsearch.aspx"/>
				
				<exclude name="web/user/privatemessages/*.aspx"/>
				<exclude name="web/user/createuser2.aspx"/>
				<exclude name="web/user/rolemembers.aspx"/>
				<exclude name="web/user/sendemail.aspx"/>
				
				<exclude name="web/user/resetuserpasswords.aspx"/>
				<exclude name="web/user/popup_aim.aspx"/>
				<exclude name="web/user/popup_icq.aspx"/>
				<exclude name="web/user/popup_msn.aspx"/>	
			</sources>
    </csc>
  </target>  

	<target name="onfailure">
	  <record name="${remotebuilddir}\${buildlog}" action="Close"/>
	
		<mail from="${MailAddressAdministrator}" 
					tolist="${MailAddressAdministrator}" 
					subject="Build failed" 
					mailhost="naomi02">					
			<files>
				<include name="${remotebuilddir}\${buildlog}" />
			</files>  												
		</mail>	
	</target>

	<target name="onsuccess">    
	
		<echo message="Copy the locally build files to the remote build directory for processing."/>
    <copy todir="${remotebuilddir}">
        <fileset basedir="${localbuilddir}">
            <include name="*.dll" />
            <include name="*.xml" />            
        </fileset>
    </copy>

		<echo message="Delete existing fxCop result file."/>		
		<delete file="${remotebuilddir}\${fxcop.result}" failonerror="false"/>
		
		<echo message="Start fxCop processing of assemblies."/>
	  <exec program="fxcopcmd.exe" commandline="/p:${remotebuilddir}\${fxcop.project} /out:${remotebuilddir}\${fxcop.result}" failonerror="false"/>

		<echo message="Delete existing Ndoc documentation."/>	  
		<delete dir="${documentationdir}" failonerror="false" />

		<echo message="Start Ndoc processing of assemblies."/>	  
    <ndoc failonerror="false">
        <assemblies basedir="${remotebuilddir}">
          <include name="ASPNetForums.Components.dll" />
          <include name="ASPNetForums.Controls.dll" />          
          <include name="ASPNetForums.SQLDataprovider.dll" />                                                  
          <include name="ASPNetForums.dll" />                                                          
        </assemblies>
        <summaries basedir="${remotebuilddir}">
            <include name="NameSummary.xml" />
        </summaries>
        <documenters>
            <documenter name="MSDN">
                <property name="OutputDirectory" value="${documentationdir}" />
                <property name="HtmlHelpName" value="WeDoItForum" />
                <property name="HtmlHelpCompilerFilename" value="hhc.exe" />
                <property name="IncludeFavorites" value="False" />
                <property name="Title" value="An NDoc Documented Class Library" />
                <property name="SplitTOCs" value="False" />
                <property name="DefaulTOC" value="" />
                <property name="ShowVisualBasic" value="False" />
                <property name="ShowMissingSummaries" value="True" />
                <property name="ShowMissingRemarks" value="False" />
                <property name="ShowMissingParams" value="True" />
                <property name="ShowMissingReturns" value="True" />
                <property name="ShowMissingValues" value="True" />
                <property name="DocumentInternals" value="False" />
                <property name="DocumentProtected" value="True" />
                <property name="DocumentPrivates" value="False" />
                <property name="DocumentEmptyNamespaces" value="False" />
                <property name="IncludeAssemblyVersion" value="True" />
                <property name="CopyrightText" value="Copyright 2004 We-do-it B.V." />
                <property name="CopyrightHref" value="http://www.we-do-it.nl"; />
              </documenter>
        </documenters> 
    </ndoc>

		<echo message="Delete zipped fxCop results file."/>
		<delete file="${remotebuilddir}\fxCopResults.zip" failonerror="false"/>
		
		<echo message="Zip fxCop results file."/>		
    <zip zipfile="${remotebuilddir}\fxCopResults.zip" failonerror="false">
			<fileset>
				<include name="${remotebuilddir}\${fxcop.result}" />
			</fileset>
    </zip>					
    
	  <record name="${remotebuilddir}\${buildlog}" action="Close"/>
    
		<echo message="Send mail of succesfull build."/>	  			        	
		<mail from="[EMAIL PROTECTED]" 
					tolist="[EMAIL PROTECTED]" 
					subject="Build was a succes" 
					mailhost="naomi02">
      <files>
	      <include name="${remotebuilddir}\${buildlog}" />
      </files>  					
			<attachments>
				<include name="${remotebuilddir}\fxCopResults.zip" />
			</attachments>
		</mail>
	</target>
	                	
</project>	

Reply via email to