Hello, Mac チュートリアルのビルドに失敗する!

夏休みの自由研究にVisualStudio for Mac で Xamarinを使った開発をしてみよう!

と決意したのが一昨日。

以前もXamarin + VS for Macの開発をしてみようと思ったのだけど、あまりに意味不明。

厳密には、一応曲がりなりにもプロとしての常識というものを持っているので、その常識の範囲内でトライしてダメだったから優先度を下げちゃった、という感じ。

つまり前回は、大して調べもせず、とりあえずフィーリングで使ってみただけだったので、今回チュートリアルから改めてやり直そう、と考えた次第。

 

は、いいものの、Visual Studio for Macチュートリアルのビルドに失敗する。

作ろうとしているチュートリアルは、Microsoft様公式のこちら。

docs.microsoft.com

 

指示通りに作成して(厳密には変数名はちょっと変えたけど)、いざビルド、実行!・・・するとエラーコード M000 が出力。

このエラー、プログラマーにとって最大の敵の一人、「Unexpected Error」。

訳せばわかることだけどUnexpected Errorとは「予期せぬエラー」。

つまり、コンパイラ側でも「なんかよくわからんけどエラー」といってきている。そんなもの人間様にわかるわけもない。

今回のチュートリアル、Hello, Macというプログラムで、ボタンをクリックした回数をウインドウに表示するだけ、というもの。エラーが起こる要素などありそうもない。

だとするとシステム側の問題?アンインストール&再インストール?

こんな面倒なのは今すぐ投げ出してしまいたいのだけど、今回は夏休みの自由研究。ここで逃げ出すわけにはいかない。

Unexpected error VS for Mac Microsoft tutorial などなどというキーワードでいろいろ調べていくことに。

 

すると、macOS Hight Sierraだと、『Hello,_Mac』を『Hello_Mac』にしないとバンドルがうまくいかないみたい」という一文をどこかで発見。

最初にプロジェクトを作った時

「プロジェクト名にカンマなんて入れていいんだっけ?でもまあ、Macだから大丈夫なのかもな」

と思ったのも確か。僕のOSはHigh Sierraだ。これなのか?つーかSierra以前なら大丈夫なの?

 

とりあえず試してみよう・・・と検索すると、今回作ったソリューションの中にある Hello,_Mac

Hello_Macプロジェクトの

あと、Info.plistの

  • バンドル名

にあった。

(変更してしまった後で改めて探したので、もしかすると別の場所にもあるかもしれない。)

これらの名称を全て Hello,_Mac -> Hello_Macに修正。

その後、保存、Build…おお!Build成功!

チュートリアル通り、ボタンを押すとカウントアップするソフトが無事作れました!万歳!

 

ところで、後でいろいろやってみた結果、修正が必要なのは「出力 - アセンブリ名」だけみたい。だけど、気持ち悪いから他も直しておきましょ。

こういうの、後で痛い目みがちだから。

MSのチュートリアル、ちょっと直しておいて欲しいかもなー。