# Executing irake from C#

**URL:** <https://www.ruby-forum.com/t/executing-irake-from-c/181613>\
**Category:** IronRuby\
**Created:** [January 14, 2010, 6:40pm UTC](https://www.ruby-forum.com/t/executing-irake-from-c/181613 "2010-01-14T18:40:00Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![metanoize](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9fc29f/32.png) [@metanoize](https://www.ruby-forum.com/u/metanoize)\
**Post date:** [January 14, 2010, 6:40pm UTC](https://www.ruby-forum.com/t/executing-irake-from-c/181613/1 "2010-01-14T18:40:00Z")

</div>

How can I execute irake from C#?

static void Main(string[] args)  
{  
var engine = IronRuby.Ruby.CreateEngine();  
engine.Execute("…/…/rake foo");  
}

The above does not work!

---

<div class="post-metadata">

**Author:** ![metanoize](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9fc29f/32.png) [@metanoize](https://www.ruby-forum.com/u/metanoize)\
**Post date:** [January 14, 2010, 9:15pm UTC](https://www.ruby-forum.com/t/executing-irake-from-c/181613/2 "2010-01-14T21:15:05Z")

</div>

Try with “call irake”

On Thursday, January 14, 2010, Mohammad A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).
> 
> * * *
> 
> Ironruby-core mailing list  
> [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> [http://rubyforge.org/mailman/listinfo/ironruby-core](http://rubyforge.org/mailman/listinfo/ironruby-core)

## –

Met vriendelijke groeten - Best regards - Salutations  
Ivan Porto C.  
GSM: +32.486.787.582  
Blog: [http://flanders.co.nz](http://flanders.co.nz)  
Twitter: [http://twitter.com/casualjim](http://twitter.com/casualjim)  
Author of IronRuby in Action ([IronRuby in Action - Ivan Porto Carrero and Adam Burmister | Manning](http://manning.com/carrero))

---

<div class="post-metadata">

**Author:** ![metanoize](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9fc29f/32.png) [@metanoize](https://www.ruby-forum.com/u/metanoize)\
**Post date:** [January 14, 2010, 9:36pm UTC](https://www.ruby-forum.com/t/executing-irake-from-c/181613/3 "2010-01-14T21:36:13Z")

</div>

call irake foo

did not work!

The reason is that in order to run irake it is required that I run  
dev.bat first which seems weird and silly!

---

<div class="post-metadata">

**Author:** ![metanoize](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9fc29f/32.png) [@metanoize](https://www.ruby-forum.com/u/metanoize)\
**Post date:** [January 14, 2010, 9:44pm UTC](https://www.ruby-forum.com/t/executing-irake-from-c/181613/4 "2010-01-14T21:44:58Z")

</div>

a) irake is meant to be a command line runner, if you are trying to  
execute it from C#, then you should be executing a single file that is a  
rake application.  
b) dev.bat is for developing IronRuby. If you don’t like dev.bat, and  
you just want to use IronRuby, use a release zip, not the git repo.

JD

---

<div class="post-metadata">

**Author:** ![metanoize](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9fc29f/32.png) [@metanoize](https://www.ruby-forum.com/u/metanoize)\
**Post date:** [January 14, 2010, 9:50pm UTC](https://www.ruby-forum.com/t/executing-irake-from-c/181613/5 "2010-01-14T21:50:07Z")

</div>

Jim D. wrote:

> a) irake is meant to be a command line runner, if you are trying to  
> execute it from C#, then you should be executing a single file that is a  
> rake application.  
> b) dev.bat is for developing IronRuby. If you don’t like dev.bat, and  
> you just want to use IronRuby, use a release zip, not the git repo.
> 
> JD

what do u mean by rake application?

---

<div class="post-metadata">

**Author:** ![metanoize](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9fc29f/32.png) [@metanoize](https://www.ruby-forum.com/u/metanoize)\
**Post date:** [January 14, 2010, 9:54pm UTC](https://www.ruby-forum.com/t/executing-irake-from-c/181613/6 "2010-01-14T21:54:20Z")

</div>

[http://onestepback.org/index.cgi/Tech/Rake/FindInCode.red](http://onestepback.org/index.cgi/Tech/Rake/FindInCode.red)

---

<div class="post-metadata">

**Author:** ![metanoize](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9fc29f/32.png) [@metanoize](https://www.ruby-forum.com/u/metanoize)\
**Post date:** [January 14, 2010, 10:01pm UTC](https://www.ruby-forum.com/t/executing-irake-from-c/181613/7 "2010-01-14T22:01:52Z")

</div>

Jim D. wrote:

> [http://onestepback.org/index.cgi/Tech/Rake/FindInCode.red](http://onestepback.org/index.cgi/Tech/Rake/FindInCode.red)

I am not sure if the article above is related to my issue.

I want to simply execute a rake task using IronRuby engine in DLR.

I can do this:

static void Main(string args)  
{  
var engine = IronRuby.Ruby.CreateEngine();  
engine.Execute(“puts ‘hello ironruby’”);  
}

but how can I execute a rake task without using another .rb file.

---

<div class="post-metadata">

**Author:** ![metanoize](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9fc29f/32.png) [@metanoize](https://www.ruby-forum.com/u/metanoize)\
**Post date:** [January 14, 2010, 10:47pm UTC](https://www.ruby-forum.com/t/executing-irake-from-c/181613/8 "2010-01-14T22:47:16Z")

</div>

This works if I create a ruby file and execute it like this:

ir something.rb

but it does not work using the following code:

static void Main(string[] args)  
{  
var script = @"require ‘rubygems’  
require ‘rake’

require ‘rakefile’;

Rake::Task[‘foo’].execute";

```
        var engine = IronRuby.Ruby.CreateEngine();
        engine.Execute(script);

    }

```

Exception is:

Unhandled Exception: IronRuby.Builtins.LoadError: no such file to load  
– rubyge  
ms  
at  
Microsoft.Scripting.Interpreter.ThrowInstruction.Run(InterpretedFrame  
fram  
e)  
at  
Microsoft.Scripting.Interpreter.Interpreter.RunInstructions(InterpretedFra  
me frame)  
at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame  
frame)  
at Microsoft.Scripting.Interpreter.LightLambda.Run2[T0,T1,TRet](T0  
arg0, T1 a  
rg1)  
at IronRuby.Runtime.RubyScriptCode.Run(Scope scope, Boolean  
bindGlobals)  
at IronRuby.Runtime.RubyScriptCode.Run()  
at Microsoft.Scripting.SourceUnit.Execute()  
at Microsoft.Scripting.Hosting.ScriptSource.Execute()  
at Microsoft.Scripting.Hosting.ScriptEngine.Execute(String  
expression)  
at ConsoleApplication2.Program.Main(String[] args) in  
C:\Projects\EStudyVS200  
8\EStudySoltution\EStudy\ConsoleApplication2\Program.cs:line 20  
Press any key to continue . . .

---

<div class="post-metadata">

**Author:** ![metanoize](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9fc29f/32.png) [@metanoize](https://www.ruby-forum.com/u/metanoize)\
**Post date:** [January 14, 2010, 10:07pm UTC](https://www.ruby-forum.com/t/executing-irake-from-c/181613/9 "2010-01-14T22:07:12Z")

</div>

something like this then.

require ‘rubygems’; require ‘rake’; require ‘…/…/Rakefile’;  
Rake::Task[‘mytask’].execute

* * *

Met vriendelijke groeten - Best regards - Salutations  
Ivan Porto C.  
GSM: +32.486.787.582  
Blog: [http://flanders.co.nz](http://flanders.co.nz)  
Twitter: [http://twitter.com/casualjim](http://twitter.com/casualjim)  
Author of IronRuby in Action ([http://manning.com/carrero](http://manning.com/carrero))

---

<div class="post-metadata">

**Author:** ![metanoize](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9fc29f/32.png) [@metanoize](https://www.ruby-forum.com/u/metanoize)\
**Post date:** [January 14, 2010, 11:22pm UTC](https://www.ruby-forum.com/t/executing-irake-from-c/181613/10 "2010-01-14T23:22:42Z")

</div>

When you create an engine, it doesn’t get the ScriptSetup that goes with  
it. If you include the xml elements from ir.exe.config into your apps  
config, it should get the right stuff.

JD

---

<div class="post-metadata">

**Author:** ![metanoize](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9fc29f/32.png) [@metanoize](https://www.ruby-forum.com/u/metanoize)\
**Post date:** [January 14, 2010, 11:01pm UTC](https://www.ruby-forum.com/t/executing-irake-from-c/181613/11 "2010-01-14T23:01:04Z")

</div>

Hosting IronRuby in C# requires a little bit of configuration. Copy the  
entire contents of ir.exe.config into your C# project’s app.config. Take  
a look at the LibraryPaths setting to make sure any relative paths still  
make sense, and then any Ruby libraries or gems that work at the command  
line will also work when hosted.

And Mohammad, the bring everything into perspective, “…/…/rake foo”  
isn’t valid Ruby code =)

~Jimmy
