Yes, as you have discovered, its a bit more tricky than just replacing
the DLL :)
The VAULT Nant task library API made several changes between 3.5.x and
4.x and you have indeed bumped into one of the API calls that was
added in the 4.x task library but isn't present in the 3.x version.
The package that is in CIFactory only explicitly supports VAULT 4.x.
This was a sort of a 'design decision' on the part of the few of us
that contributed this package and participated in its refinement --
since we were all using Vault 4.x, doing this made perfect sense for
*us* tho as you point out this has left Vault 3.x users 'designed-out'
of adopting CIFactory without some more work on their end.
Since there are actual *behavior* differences (via the API changes)
between these versions, its more complex to change the Vault Package
to support Vault 3.x users than it might first appear; for CIFactory
to work with a source code provider, there are a (relatively) large
number of behaviors that a SCC package needs to provide and any mods
to the SCC package need to still provide these 'hooks' so that the
rest of CIFactory can properly interact with the SCC package to get it
to do its work.
You will definitely find that you need to mod the scripts for the
Vault package in addition to replacing the DLL to go 'back' to
v3.5.x. I might recommend:
* go back and download the last beta version that supported Vault
3.5.x (seems to me this was like CIFactory 0.65 or so but I may be
wrong)
* diff the vault package scripts from that version with those of the
latest vault package that supports Vault 4.x
Splice the vault tasks from the CIFactory 0.65 into the scripts for
the current version; the current vault package has the right 'surface
area' that any SCC provider package needs in order to work properly
with the latest CIFactory release but the prior vault tasks scripts
contains the 'proper' commands to interact with the 3.5.x versions of
vault so some combination of these two blended together *should* be
able to work.
I know this is less than ideal as an approach, but its the one that it
seems to me is most likely to result in success for you.
Sorry~!
BTW, if you do get this to work maybe send the package back to Jay so
he can incl. it as an optional external download (a drop-and-replace
set of files that can supplant the distributed Vault package already
in CIFactory with a version that supports Vault 3.3.x).
Hope this helps some,
-Steve B.
On Feb 21, 11:07 pm, rasane <sras...@gmail.com> wrote:
> Hi Steve,
> Thankyou for that response.
> I had never used nant before this morning and did not know of the
> existence of nant package from Vault until now.
> So I got the Nant package for Vault 3.5.2 (http://
> download.sourcegear.com/Vault/4.0.2.15802/
> VaultClientAPI_4_0_2_15802.zip fromhttp://www.sourcegear.com/vault/downloads2.html)
> and played around it today. So I could get some sample scripts going
> with respect to connecting with my repository.
> Then I got a little ambitious and replaced the contents C:\Tools\CI
> Factory\Packages\Vault\bin directory with the 3.5.2 version of nant
> dlls from vault.
> This ended up with the following error:
> =========begin build log=============
> CleanExtraXmlNs:
> [xmlpeek] Peeking at 'c:\Projects\Quicksilver\Current\Build
> \Main.build.xml' wi
> th XPath expression '/n:project/n:target[@name = 'Triggered']/
> n:trycatch/n:try/*
> |/n:project/n:target[@name = 'Triggered']/n:trycatch/n:try/comment()'.
> [xmlpoke] Found '1' nodes matching XPath expression '/n:project/
> n:target[@name
> = 'Triggered']/n:trycatch/n:try'.
> [nant] c:\Projects\Quicksilver\Current\Build\Packages\Vault
> \SourceControl.T
> arget.xml SourceControl.Repository.Load
> Buildfile: file:///c:/Projects/Quicksilver/Current/Build/Packages/Va
> ult/SourceControl.Target.xml
> Target framework: Microsoft .NET Framework 2.0
> Target(s) specified: SourceControl.Repository.Load
> [loadtasks] Scanning assembly "NAnt.VaultTasks" for
> extensions.
> SourceControl.Repository.Load:
> SourceControl.Repository.Create:
> BUILD FAILED
> c:\Projects\Quicksilver\Current\Build\Packages\Vault
> \SourceControl.T
> arget.xml(137,6):
> Invalid element <vaultsetloginoptions>. Unknown task or
> datatype.
> Total time: 0.1 seconds.
> BUILD FAILED
> ======end build log========
> That seems to make sense, since vault 3.5.2 does not have that task in
> its namespace.