For one of my projects I'm trying to identify a decent, open source, .NET based ETL component. Yes, those are some picky requirements but there appears to be at least one answer called Rhino ETL. Getting it built isn't the most straight forward task. Here is what it takes:
First off grab the source from GIT, which might first require you have access to GIT utilities, I chose GITExtensions off of SourceForge. After installing it and launching it I get to look at a cow. I'm not sure why. I'm sure there is a reason. I don't think I want to know what it is though, so I'm going to skip googling GITExtensions and cow and just get on with it, but for your own viewing pleasure I've included a screenshot.
Once you have GITExtensions installed you can use the UI to download the current source for Rhino-ETL. Currently the URL for Read Only access to the Rhino-ETL source is here:
In order to grab a copy of the source you click 'Clone repository' in the above UI and then fill out the clone screen something like this:
Hit clone and now you'll have the source in the destination you specified.
Open up the "How to build.txt" file and you'll get the following instructions:
In order to build this project, you need to execute the psake build script from the PowerShell console.
You do this using the following command from the root project directory:
You may need to allow script execution by running the following command as adminstrator:
Also note that the build script assume that you have git.exe on your path.
Running the tests requires access to a database called 'test' on the default instance of SQL Server
In order to build I did need to run Set-ExecutionPolicy unrestricted as the build instructions mentioned and put the GITExtensions\bin directory into my path. So, do like the nice "How to build" file says.
PS C:\Windows\system32> Set-ExecutionPolicy unrestricted
Execution Policy Change
The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose
you to the security risks described in the about_Execution_Policies help topic. Do you want to change the execution
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
Once you've updated your execution policy (if necessary) you can run the build command .\psake.ps1 default.ps1 from within your source directory and you should be successful building the assemblies. In my case, I didn't bother creating the test database so I did receive a long stack trace complaining about the lack of the database, but not to the detriment of the build from what I can tell so far.
After I ran the command I decided I would try to be security conscious and reverted my ExecutionPolicy back to the default with Set-ExecutionPolicy default.
I upgraded the solution to VS.NET 2010 and then got some "Warning as Error" messages that stopped my build in VS.NET. Turning them off is handled as follows:
Project -> Properties -> Build -> Treat Warnings as Errors -> None
And with that, I have a built copy of the Rhino-ETL library. In case you are wondering, yes, I'll be posting in the future about my experiences with the library.