Re: [NAnt-users] msi task - 'cabarc' failed to start
Don't know if this helps Beth, but I wrote an install for Nant so developers can install it to their machines (mostly because we have some custom tasks etc) but because our build scripts also create installers, I included cabarc.exe and cabinet.dll in the install. These are installed to the Nant\bin folder, and the MSI task runs fine with just these installed on a dev machine (no need for the SDK) You might want to give it a go and see if it helps. Cheers, Bill _ From: Beth Hechanova [mailto:bhechan...@imsco-us.com] Sent: 29 January 2009 20:00 To: nant-users@lists.sourceforge.net Subject: Re: [NAnt-users] msi task - 'cabarc' failed to start Gert, I tried executing cabarc from my build file - that works (at least I get a .cab file - I'm not sure how the msi file gets generated.) Executing the msi block gives the same error (pasted again below). Here's the Distribute target I currently have (with the exec to cabarc directly): target name=Distribute description=create installer !--echoPath: ${environment::get-variable('PATH')}/echo -- msi verbose=true sourcedir=${BuildAreaPublish}\* output=${BuildAreaDistribute}\ContentManagementTool.msi / exec verbose=true program=cabarc arg value=-r / arg value=N / arg value=${BuildAreaDistribute}/ContentManagementTool.cab / arg value=${BuildAreaPublish}\* / /exec /target Thanks for your help, Beth Target(s) specified: Distribute Distribute: [msi] Building Installer Database 'C:/BuildArea/ContentManagementTool/Distribute\ContentManagementTool.msi'. [msi] Compressing Files... [exec] Starting 'cabarc (-r N \ContentManagementTool.cab *)' in 'C:\Documents and Settings\BHechanova.IMS\Local Settings\Te mp\tmp429.tmp' BUILD FAILED C:\content\ContentTrunk\ContentManagementTool\src\ContentManagementTool.bu ild(179,6): Unable to build Installer database 'C:/BuildArea/ContentManagementTool/Distribute\ContentManagementTool.msi'. C:\content\ContentTrunk\ContentManagementTool\src\ContentManagementTool.bu ild(179,6): Error creating cab file. 'cabarc' failed to start. The directory name is invalid Total time: 1.1 seconds. Re: [NAnt-users] msi task - 'cabarc' failed to start Gert Driesen Thu, 29 Jan 2009 09:41:45 -0800 Beth, No, that should do it. Can you try just executing cabarc from within your build file first? For example: exec program=cabarc / Gert This email and any files transmitted with it are confidential proprietary to Systems and Software Enterprises, Inc. (dba IMS). This information is intended solely for the use of the individual or entity to which it is addressed. Access or transmittal of the information contained in this e-mail, in full or in part, to any other organization or persons is not authorized. __ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email __ IMPORTANT The information contained in this e-mail and any attachments is intended for the addressee only and may contain legally privileged or confidential information. If you are not the intended recipient you must not use, disclose, copy, distribute, alter, or take any action in reliance on the information and Avon Insurance plc will not accept liability for any loss or damage howsoever arising, directly or indirectly in reliance on it and gives no warranty or representation as to its accuracy or reliability. If you are not the addressee, please notify us immediately on 01789 202121* and delete the material from your computer and destroy any copies. Avon Insurance plc reserves the right to monitor and record incoming and outgoing email messages for the purposes of investigating or detecting unauthorised use of its system and ensuring its effective operation. Avon Insurance plc will not accept liability for any loss or damage as a result of any virus being passed on. Avon Insurance plc (No. 209606). Registered in England. Registered Office: Tiddington Road, Stratford-upon-Avon, Warwickshire CV37 7BJ. Authorised and regulated by the Financial Services Authority. A member of the NFU Mutual group of companies and the Association of British Insurers. For security and training purposes telephone calls may be recorded and monitored. __ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email __-- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your
Re: [NAnt-users] msi task - 'cabarc' failed to start
I manually copied cabarc.exe and cabinet.dll to my NAnt\bin directory and that had no effect. Does your install set any env/registry variables with respect to the cab sdk? Are you using NAnt 0.86 (Build 0.86.2898.0; beta1; 12/8/2007)? Thanks, Beth Re: [NAnt-users] msi task - 'cabarc' failed to start William_Martin Fri, 30 Jan 2009 01:34:03 -0800 Don't know if this helps Beth, but I wrote an install for Nant so developers can install it to their machines (mostly because we have some custom tasks etc) but because our build scripts also create installers, I included cabarc.exe and cabinet.dll in the install. These are installed to the Nant\bin folder, and the MSI task runs fine with just these installed on a dev machine (no need for the SDK) You might want to give it a go and see if it helps. Cheers, Bill --- This email and any files transmitted with it are confidential proprietary to Systems and Software Enterprises, Inc. (dba IMS). This information is intended solely for the use of the individual or entity to which it is addressed. Access or transmittal of the information contained in this e-mail, in full or in part, to any other organization or persons is not authorized. --- -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword___ NAnt-users mailing list NAnt-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nant-users
Re: [NAnt-users] NAnt Fix for .NET 3.5 Compiling Without Visual Studio
Hi Ben, This issue is already fixed in CVS, and will be part of the next drop. Gert From: Ben Floyd [mailto:datap...@gmail.com] Sent: donderdag 29 januari 2009 23:46 To: nant-users@lists.sourceforge.net Subject: [NAnt-users] NAnt Fix for .NET 3.5 Compiling Without Visual Studio I recently had the problem that I created a build server that did not have Visual Studio installed and I needed to compile .NET 3.5 code. I figured out that NAnt 0.86 beta 1 was looking for registry keys in the HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0a\WinSDKNetFxTools hive. To fix this I installed the Windows Server 2008 and .NET 3.5 SDK, which creates the registry keys at HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.1\WinSDKNetFxTools. To get NAnt to recognize the installed SDK I added the following registry keys: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0a] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0a\WinSDKNetFxTools] InstallationFolder=C:\\Program Files\\Microsoft SDKs\\Windows\\v6.1\\ ProductVersion=6.1 It basically points the v6.0 SDK to the v6.1 one that is installed. From there, NAnt can find the tools necessary to compile .NET 3.5 code without having Visual Studio installed. I'm not sure there is anything that the NAnt dev team could do about this because they don't actively modify the environment to detect installed SDKs. If anyone has a suggestion on how to get this check into the trunk for NAnt please let the dev team know! I've written a blog post about this as well at http://dataplex.org/blog/2009/01/fixing-nant-086-beta-1-for-net-35-continuou s-integration/ Thanks, Ben Floyd No virus found in this incoming message. Checked by AVG - http://www.avg.com Version: 8.0.176 / Virus Database: 270.10.15/1923 - Release Date: 1/29/2009 7:13 AM -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword___ NAnt-users mailing list NAnt-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nant-users
Re: [NAnt-users] Navigating XML documents ...
Mike, Thanks so much for your feedback. I used your suggestion with a little wrinkle. Instead of creating unique names for each node in the Xml file, I gave each node an attribute with a unique ID. That way, the file can still be parsed by other Xml parsers without confusion. This is what I came up with: Sample XML file: ?xml version=1.0? DirDiff FileDirItems FileDirItem Id=1 Type=File Status=Modified Path=DNSLookup.asp / FileDirItem Id=2 Type=File Status=Modified Path=encryption.asp / FileDirItem Id=3 Type=File Status=Modified Path=err404.asp / FileDirItem Id=4 Type=File Status=Modified Path=error.asp / FileDirItem Id=5 Type=File Status=Modified Path=error.aspx / FileDirItem Id=6 Type=File Status=Modified Path=errorauth.aspx / FileDirItem Id=7 Type=File Status=Added Path=genericPub.asp / FileDirItem Id=8 Type=File Status=Added Path=getchart_id.asp / FileDirItem Id=9 Type=File Status=Added Path=glossary_windoid.asp / /FileDirItems /DirDiff Nant task code: target name=default property name=fileName value=ChangeList.xml / xmllist file=${fileName} xpath=/DirDiff/FileDirItems/FileDirItem/@Id property=idList / foreach item=String delim=, in=${idList} property=itemId xmllist file=${fileName} xpath=/DirDiff/FileDirItems/FileDirItem [...@id='${itemId}']/@Path property=filePath / xmllist file=${fileName} xpath=/DirDiff/FileDirItems/FileDirItem [...@id='${itemId}']/@Status property=fileStatus / echo message=itemId = ${itemId}, filePath = ${filePath}, fileStatus = ${fileStatus} / !-- Now, do the work -- /foreach /target Much appreciated. Ken Parrish Gomez, Inc. _ -Original Message- From: Mike Frederick [mailto:mikeyf...@att.net] Sent: Thursday, January 29, 2009 12:33 PM To: nant-users@lists.sourceforge.net Subject: [NAnt-users] Navigating XML documents ... It is a little painful, but it is possible. The idea is to be able to address each FileItem node individually. If each Path property is unique across all of the FileItem nodes, then you can use that property to pick-out each FileItem node: project name=Ken default=go property name=XMLFile value=Ken.xml/ property name=xpath value=/MyFileList/FileItems/FileItem/ target name=go xmllist file=${XMLFile} xpath=${xpath}/@Path property=pathlist/ foreach item=String delim=, in=${pathlist} property=path echoFile: ${path}/echo xmllist file=${XMLFile} xpath=${xpath} [...@path='${path}']/@Status property=status/ xmllist file=${XMLFile} xpath=${xpath} [...@path='${path}']/@Mode property=mode/ echo status: ${status}, mode: ${mode}/echo echo / /foreach /target /project Since you have gotten this far, I will mention that I tend to address this situation by creating nodename that are unique, such as: ?xml version=1.0? MyFileList summary /summary FileItems File01 Path=file01.txt Status=good Mode=ok / File02 Path=file02.txt Status=bad Mode= ok / File03 Path=file03.txt Status=good Mode=notok/ File04 Path=file04.txt Status=ignore Mode=ok / File05 Path=file05.txt Status=bad Mode=ok / /FileItems /MyFileList which is ugly from a schema perspective, but I have a mod to xmllist that allows me to do: project name=Ken default=go property name=XMLFile value=Ken.xml/ property name=xpath value=/MyFileList/FileItems/ target name=go xmllist file=${XMLFile} xpath=${xpath}/* property=filelist/ foreach item=String delim=, in=${filelist} property=fileitem xmllist file=${XMLFile} xpath=${xpath}/${fileitem}/@Path property=path/ xmllist file=${XMLFile} xpath=${xpath}/${fileitem}/@Status property=status/ xmllist file=${XMLFile} xpath=${xpath}/${fileitem}/@Mode property=mode/ echoFile: ${path}/echo echo status: ${status}, mode: ${mode}/echo echo / /foreach /target /project which I like a lot better from a programming perspective. The mod I made was to allow a file nodename to be a *, which is interpreted as return a list of all child nodenames. The idea is to Thanks for the reference to xmllist. I have built this code into my standard extension DLL and it seems to be working as advertised. However, there is a part of the problem that I have yet to find a good solution. In the example below, I can generate a list of all the 'Path' attributes, or all the 'Status' attributes. However, there is no practical way (that I can think of) to iterate over these two lists simultaneously. What I really need is to 'fetch' each FileItem node, one at a time, then gather the various attributes set for that node. Then, iterate to the next FileItem node in the
[NAnt-users] Configurating NAnt
I am in the process of setting up my TDD and CI environment. I'm running VS2008, and a couple of other programs to get me started, they are NUnit and CruiseControl.Net. I am trying to configure NAnt to automate my solutions with a build file and running it from a batch file, this is what i did;... I added another directory to my trunk folder called build. In the build directory, I was instructed to keep my NAnt .build file (the XML configuration file that tells NAnt what to do), my batch files, results from the build process, and everything to do with the build process in it. so I created the build file. and call it Goodstart.build. I opend that file up and added some basic XML so that NAnt can do what it do. Then I put my schema file (nant.xsd) that was in the inital download in program files | Microsoft Visual Studio 9 | xml | schemas, so that Visual Studio intellisense could help guide me through all the various options of NAnt. I wrote my code in the Goodstart.build. I didn't want to manually type the commands in NAnt. I didn't want to have to do any manual tasks. So what I did was automate the (batch file) then went with automation (NAnt build files) to avoid any manual labour. So like I stated earlier in this paragraph. In my build directory I added two more files. The first file was build.bat file, which was the base batch file and then I created a clickToBuild.bat file which was created to pass parameters to my build.bat file. In the build.bat file I put this line of code ...\binaries\nant\nant.exe -buildfile:Goodstart.build %* then in the clickToBuild.bat I put this command build.bat compile pause then i clicked on my clickToBuild.bat file and I was expecting to see somethings compiling and BUILD SUCCEEDED but I didn't see that. Instead I saw C:\Projects\Goodstart\trunk\build.bat compile pause 'build.bat' is not recognized as an internal or external command, operable program or batch file. How can I get this kink worked out and fix this problem -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword___ NAnt-users mailing list NAnt-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nant-users
Re: [NAnt-users] msi task - 'cabarc' failed to start
Unfortunately, I'm not back in work until Monday, and I haven't got the source to the msi script at home, but I'm pretty sure the only thing it configures on the client machine it to put the NAnt\bin folder in the path. Do you have this? I'll double check when I get in on Monday. Cheers, Bill _ From: Beth Hechanova [mailto:bhechan...@imsco-us.com] Sent: 30 January 2009 16:09 To: nant-users@lists.sourceforge.net Subject: Re: [NAnt-users] msi task - 'cabarc' failed to start I manually copied cabarc.exe and cabinet.dll to my NAnt\bin directory and that had no effect. Does your install set any env/registry variables with respect to the cab sdk? Are you using NAnt 0.86 (Build 0.86.2898.0; beta1; 12/8/2007)? Thanks, Beth Re: [NAnt-users] msi task - 'cabarc' failed to start William_Martin Fri, 30 Jan 2009 01:34:03 -0800 Don't know if this helps Beth, but I wrote an install for Nant so developers can install it to their machines (mostly because we have some custom tasks etc) but because our build scripts also create installers, I included cabarc.exe and cabinet.dll in the install. These are installed to the Nant\bin folder, and the MSI task runs fine with just these installed on a dev machine (no need for the SDK) You might want to give it a go and see if it helps. Cheers, Bill This email and any files transmitted with it are confidential proprietary to Systems and Software Enterprises, Inc. (dba IMS). This information is intended solely for the use of the individual or entity to which it is addressed. Access or transmittal of the information contained in this e-mail, in full or in part, to any other organization or persons is not authorized. -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword___ NAnt-users mailing list NAnt-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nant-users
[NAnt-users] parsing version string
Hi, I'm trying to parse my version property to get the individual elements (major, minor, iteration, ...). My end goal is to take the information in the version in a format of 1.2.3.4 and turn it into a string that looks like 010203 (takes each of the major, minor, iteration and pad-lefts to a length of 2 with the zero char). I have a property called ${version} in the format of 1.2.3.4. I've been trying to use the version::get_major() function, but I must be using it wrong as I can't seem to extract the major number from the version. I'm trying to create another property: property name=partNumberMajor value=version::get_major(${version}) / echomajor is ${partNumberMajor}/echo And all I get back is [echo] major is version::get_major(1.0.1.34} Then I found the version::parse() function and thought maybe I should be using that to parse create a Version to pass to get_major(). That did not seem to work either, even if I hard coded a string for my version: echomajor version is version::get_major(version::parse(1.2.3.4))/echo Am I using these functions incorrectly? Thanks, Beth -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword___ NAnt-users mailing list NAnt-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nant-users