今までmono developでなでしこ2をビルド、テストして、cui環境にアップロードしてたんだけど、面倒になってきたのでcui環境で直接ビルド、テストしてみようと思ったのでついでに開発を始める段階からメモしてみる。

環境はubuntu 12.04とするが、上位バージョンでも問題無いはず

mono環境の準備

mono-develをインストールしたらmono関連で必要なものは勝手にインストールされたような気がする。ついでにVisualBasicが動かない件にあるように、mono-vbnc、あとはnunitのインストール

$ aptitude install mono-devel mono-vbnc nunit

なでしこ2リポジトリを取得

Google Codeが2016年1月に閉鎖されるので、なでしこ2のリポジトリはgithubに移動している。

なので、リポジトリの取得はgit cloneでいける。kujirahandさんのリポジトリをcloneするなら

$ git clone https://github.com/kujirahand/nadesiko2.git

shigeponがfolkしたリポジトリなら

$ git clone https://github.com/shigepon/nadesiko2.git

で、カレントディレクトリにnadesiko2ディレクトリが出来て、その下にプロジェクト1式が入っている。中にはソリューションが3つあり、それぞれ

  • Nako2_CNako.sln → cui環境で動かすなでしこ2(cnako)関連
  • Nako2_Plugins.sln → なでしこ2のプラグイン関連
  • Nako2_Plugins_Office.sln → なでしこ2のOffice関係プラグイン

のソリューションである。今回は\/home\/usernameディレクトリ上でcloneすると考える

おもむろにビルド

kujirahandさんのリポジトリをcloneしたとして、とりあえず何もせずにCNakoのソリューションをビルドしてみると

$ xbuild Nako2_CNako.sln
...
NakoPluginArrayTest.cs(9,7): error CS0246: The type or namespace name `NUnit' could not be found. Are you missing a using directive or an assembly reference?
...

みたいなエラーメッセージを出してビルド出来ない。一方でプラグイン関連のソリューションは

$ xbuild Nako2_Plugins.sln
...
    18 Warning(s)
     0 Error(s)
Time Elapsed 00:00:06.1095450

と出て、エラー無くビルド出来る。この違いはそれぞれのソリューションで参照しているテストプロジェクトにnunitへの参照パスが入っているかどうかの違いだったので、NakoPluginTest/NakoPluginTest.csprojを参考にしてCNakoTest/CNakoTest.csprojの

<Reference Include="nunit.framework.extensions, ..." />

行に3行追記する

   <Reference Include="nunit.framework">
       <HintPath>..\..\..\..\usr\lib\mono\gac\nunit.framework\2.5.10.0__96d09a1eb7f44a77\nunit.framework.dll</HintPath>
   </Reference>

で、再度ビルドするとビルド出来た。shigeponのリポジトリには修正したものをアップしておくのでそのままビルド出来ると思う。パスはリポジトリをcloneするディレクトリによっては変更しないといけないと思う。