読者です 読者をやめる 読者になる 読者になる

ささいなことですが。

Windowsアプリテスト自動化ライブラリFriendly開発者の日記です。

Visual Studio for Mac ⇔ Windows (WinFormsがMacでビルド、実行できたよ)

Visual Studio for Mac を触り始めましたが、Windows版との互換性が気になりました。ちょっと実験してみます。(ていうか、この辺はXamarinStudioと同じなんでしょうけど、XamarinStudioの仕様も知らないので)

コンソールアプリ

for Mac で作ったコンソールアプリをそのままWindowsの方にコピーしてみました。
で、Visual Studio 2015 で開いてみます。
おー、開けたよ!逆になんで?
f:id:ishikawa-tatsuya:20161120163921p:plain
プロジェクト情報を見てみると、.NET Framework 4.5 になっていました。
for Macの方でプロジェクト情報見ると・・・
Mac版ではプロジェクトのところからメニューを開いてオプションを選択するようです。
f:id:ishikawa-tatsuya:20161121063356p:plain:w300
で、全般を選択すると
f:id:ishikawa-tatsuya:20161121063650p:plain
なるほど、コンソールアプリはMono/.NetFramework4.5で作られるんですね。
では、macの方でビルドしたexeをWindowsで実行すると・・・。
f:id:ishikawa-tatsuya:20161121063130p:plain
普通に実行できました。
逆にこれはmacでは、普通には動かないんですね。
mac初心者なんで最初あれ?ってなったんですが、exeってmacの実行ファイルではないようです。macで動かすためにはホストする何かが必要になります。で、.Netアプリを実行するにはmonoランタイムを使います。ターミナルでexeのフォルダまで行って、monoコマンドを実行します。
f:id:ishikawa-tatsuya:20161121064059p:plain

WinForms

どうも調べて見るとMonoのランタイムでWinFormsもある程度動くようです。ちょっとやってみたいですね。でも Visual Studio for Mac の新規作成ではWinFormsなんてない。もはや関わりたくない感がすごいw。でも先ほどのConsoleアプリの実験で分かったようにWindows版とMac版でソリューションの互換性はあるようです。というわけでWindows版でソリューション作ってそれをコピーしてみます。.Netのバージョンは4.5にしておきます。で、開くと
f:id:ishikawa-tatsuya:20161121064352p:plain
おー、開けた!
そして実行もしてみます。
f:id:ishikawa-tatsuya:20161121064855p:plain:w280
実行もできますね。結構便利な気はしますが、もはや主流ではないんですねー。
それから、フォームのデザイナも開くことはできませんでした。残念。