Xamarinで C# interactive を動かそう…としたが無理でした

Visual Studio 2013 には F# interactive というインタープリタ版の F# コマンドラインツールがあります。これを使うと、数値の計算とかコードの検算とかが楽なので便利に使っているのですが、Xamarin Studio にも F# interactive があります。

Xamarin Studio で「ビュー」→「パッド」→「F# interactive」で開くと、文字化けをしていますが開きます。フォントが悪いのか、ここのペイン(パッド)の文字解析部分が悪いのかわからないのですが、一応使えます。あらかじめ、XamarinでF#を使う方法 | Moonmile Solutions Blog で示したようなアドインを入れておく必要があります。

image

この Gallary の中に「C# interactive」というのがあって、名前の通り C# のインタープリタなようです。試してみようと思って、インストールして動かしてみるのですが、以下なエラーを吐いて落ちてしまいます。

image

んー、元のソースはないかと思って調べると、praeclarum/CSharpInteractive にあります。SQLite.net の作者の方ですね。見ると、mac 上の xamarin studio では動いているようなので、ちょっとソースを覗いてみると、なところでパスが指定されていました。

public class CSharpInteractiveSession : ProcessInteractiveSession
{
public override string GetFileName ()
{
return “/Library/Frameworks/Mono.framework/Versions/Current/bin/csharp”;
}
}

このパスは何なのだろうと思ったら、mono には csharp という C# インタープリタがあるんですね。これをインストールしないダメっぽいのです。んが、Windows の場合は、このパスにインストールされる訳ではないので多分書き換えないと駄目です。

Download – Mono
http://www.go-mono.com/mono-downloads/download.html

から mono 一式をダウンロードすると、csharp.exe は C:/Program Files (x86)/Mono-3.2.3/lib/mono/4.5/csharp.exe なところにあります。この部分を修正して、更に参照設定を monotouch のものから Windows のものに切り替えます。

image

アドインのパッケージのつくり方が分からないので、アドインの DLL を直接変更します。

C:/Users/masuda/AppData/Local/XamarinStudio-4.0/LocalInstall/Addins/CSharpInteractive.CSharpInteractive.1.0/CSharpInteractive.dll

を差し替えてやればOKです。

■これで動くかな?

と思ったのですが、残念。Console アクセスでエラーになっているので、mac のターミナルと windows のコマンドラインの差をうまく変更しないと駄目そうですね。

image

ちなみに、csharp.exe をコマンドラインで動かすとうまく動きます。

image

書いた後に気づいたのですが、Download LINQPad でもいいし、CsharpRepl – Mono でも十分かも。

カテゴリー: C#, Xamarin パーマリンク