SharpDevelop で IronPython + C# してみたんですが……

いつまでも IDLEIronPython するのもアレだなと思い SharpDevelop

使ってみたのですけれども……。

SharpDevelop の使い勝手は IDLE で Python コード書くのや Visual StudioC# コード書くのに比べれば劣りますが、無料で IronPythonC# を統合して使えるというのは魅力的*1。というわけで早速 IronPython のプロジェクトと C# のプロジェクトを含むソリューションを作って試してみました。

clr.AddReference('Hoge')

が要らず、代わりにプロジェクトの「参照」に 'Hoge' を追加する必要がある、など多少の差はありますが、とりあえず統合されたソリューションを作れるみたい。わーい。

……と皮算用して喜んでいたの、ですが……とんだ落とし穴が!

ファイル "obj\x86\Debug\Hoge.dll" を "bin\Debug\Hoge.dll" にコピーできません。別のプロセスで使用されているため、プロセスはファイル 'bin\Debug\Hoge.dll' にアクセスできません。 (MSB3021)

最初のビルドでは正常に動作するのですが、C# の方のソースを修正してから再ビルドするとこのエラーが。実行に使った ipy.exe なりが Hoge.dll を確保したままなのでしょうか、再ビルドされたアセンブリが上書きできない状態に。

一旦 SharpDevelop を終了させて再度実行すればまたビルド実行できるのですが……これでは今まで通りに C#Visual Studio でビルドし IronPython スクリプトは IDLE で書いてバッチファイル

"C:\Program Files\IronPython 2.6\ipy.exe" hoge.py
pause

なりから実行する方が便利だよ。残念だけど使えない感じ。

*1:無料の Visual Studio である express 版は各言語別々のアプリになってしまっていて複数言語での統合ができない