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>
