2017年03月04日
川俣晶の縁側ソフトウェア技術雑記total 285 count

Visual Studio 2017 RCでRoslynを試す手順

Written By: 川俣 晶連絡先

 検索しても古いバージョンの情報が混ざっていて思い通りに行かずに苦労したのでメモだ。Visual Studio 2017正式リリース直前の今の環境でRoslynを使ってコードを動的に評価させて実行させる最低限の手順だ。

手順 §

  1. Visual Studio 2017 RCを開く
  2. スタートページで「その他のプロジェクトテンプレート」を選ぶ (あるいは他の方法でプロジェクトシンク作成ダイアログを出す)
  3. Visual C#の下のWindowsクラシックデスクトップの下のConsole App (.NET Framework)を選ぶ
  4. OKを押してテンプレート作成
  5. ソリューションエクスプローラからプロジェクト名(ConsoleApp1等)を右クリックし、プロパティを選択
  6. アプリケーションタブを選択
  7. ターゲットフレームワークのバージョンを,NET Framework 4.6.2に変更する。
  8. リロードの確認ダイアログにはいを答える
  9. ソリューションエクスプローラからプロジェクト名(ConsoleApp1等)を右クリックし、NeGetパッケージの管理を選択
  10. 参照タブを選択
  11. 検索窓にMicrosoft.CodeAnalysis.CSharp.Scriptingを入力して検索
  12. Microsoft.CodeAnalysis.CSharp.Scriptingをインストール (試したときは2.0.0-rc4)
  13. Program.csに以下のコードを入力
  14. F5を押して実行
  15. Enterを押して終了させる

コード(Program.cs) §

using System;

using Microsoft.CodeAnalysis.CSharp.Scripting;

class Program

{

    static void Main(string[] args)

    {

        CSharpScript.RunAsync("System.Console.WriteLine(\"Hello Roslyn\");").Wait();

        Console.WriteLine("Hit Enter Key to Terminate.");

        Console.ReadLine();

    }

}

問題のツボ §

  • Roslyn関係のNuGetパッケージやその他のソフトは多いが、REPLとしてコードを動的に評価するだけなら、必要なのはMicrosoft.CodeAnalysis.CSharp.Scripting。他は取りあえず必要になるまで忘れて良い
  • フレームワークのバージョンは既定では4.5.2だがこれではMicrosoft.CodeAnalysis.CSharp.Scriptingが使えない。4.6以上に上げる
  • CSharpScript.RunAsyncは非同期メソッドなので待機させることを忘れない
  • "Console.WriteLine(\"Hello Roslyn\");"だと実行できない。頭にSystem.を付けてフルネームにする必要がある

感想 §

 前にもやったことがあるはずなのに、やり方忘れた上に変更も多く、その上ネットを検索しても紛らわしい情報ばかりで一度は死にかけました。最初はそもそも何をnugetで取ってくれば良いかも分からずいろいろ試行錯誤しましたが、結局Microsoft.CodeAnalysis.CSharp.Scriptingだけよく、で他は依存関係として勝手に取ってきてくれました。ふう。ともかくこれでコードを書ける。

Facebook

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2017年
03月
06日
HTMLのCanvas要素のアスペクト比が狂う
3days 50 count
total 267 count
【技術雑記】の前のコンテンツ
2017年
01月
14日
Dell Inspiron 11 3157が電源アダプタを正しく認識しない問題
3days 38 count
total 513 count
2017年03月04日
川俣晶の縁側ソフトウェア技術雑記total 285 count

Visual Studio 2017 RCでRoslynを試す手順

Written By: 川俣 晶連絡先

 検索しても古いバージョンの情報が混ざっていて思い通りに行かずに苦労したのでメモだ。Visual Studio 2017正式リリース直前の今の環境でRoslynを使ってコードを動的に評価させて実行させる最低限の手順だ。

手順 §

  1. Visual Studio 2017 RCを開く
  2. スタートページで「その他のプロジェクトテンプレート」を選ぶ (あるいは他の方法でプロジェクトシンク作成ダイアログを出す)
  3. Visual C#の下のWindowsクラシックデスクトップの下のConsole App (.NET Framework)を選ぶ
  4. OKを押してテンプレート作成
  5. ソリューションエクスプローラからプロジェクト名(ConsoleApp1等)を右クリックし、プロパティを選択
  6. アプリケーションタブを選択
  7. ターゲットフレームワークのバージョンを,NET Framework 4.6.2に変更する。
  8. リロードの確認ダイアログにはいを答える
  9. ソリューションエクスプローラからプロジェクト名(ConsoleApp1等)を右クリックし、NeGetパッケージの管理を選択
  10. 参照タブを選択
  11. 検索窓にMicrosoft.CodeAnalysis.CSharp.Scriptingを入力して検索
  12. Microsoft.CodeAnalysis.CSharp.Scriptingをインストール (試したときは2.0.0-rc4)
  13. Program.csに以下のコードを入力
  14. F5を押して実行
  15. Enterを押して終了させる

コード(Program.cs) §

using System;

using Microsoft.CodeAnalysis.CSharp.Scripting;

class Program

{

    static void Main(string[] args)

    {

        CSharpScript.RunAsync("System.Console.WriteLine(\"Hello Roslyn\");").Wait();

        Console.WriteLine("Hit Enter Key to Terminate.");

        Console.ReadLine();

    }

}

問題のツボ §

  • Roslyn関係のNuGetパッケージやその他のソフトは多いが、REPLとしてコードを動的に評価するだけなら、必要なのはMicrosoft.CodeAnalysis.CSharp.Scripting。他は取りあえず必要になるまで忘れて良い
  • フレームワークのバージョンは既定では4.5.2だがこれではMicrosoft.CodeAnalysis.CSharp.Scriptingが使えない。4.6以上に上げる
  • CSharpScript.RunAsyncは非同期メソッドなので待機させることを忘れない
  • "Console.WriteLine(\"Hello Roslyn\");"だと実行できない。頭にSystem.を付けてフルネームにする必要がある

感想 §

 前にもやったことがあるはずなのに、やり方忘れた上に変更も多く、その上ネットを検索しても紛らわしい情報ばかりで一度は死にかけました。最初はそもそも何をnugetで取ってくれば良いかも分からずいろいろ試行錯誤しましたが、結局Microsoft.CodeAnalysis.CSharp.Scriptingだけよく、で他は依存関係として勝手に取ってきてくれました。ふう。ともかくこれでコードを書ける。

Facebook

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2017年
03月
06日
HTMLのCanvas要素のアスペクト比が狂う
3days 50 count
total 267 count
【技術雑記】の前のコンテンツ
2017年
01月
14日
Dell Inspiron 11 3157が電源アダプタを正しく認識しない問題
3days 38 count
total 513 count
【技術雑記】のコンテンツ全リスト【技術雑記】の表紙

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20170304160504
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Google

Powered by MagSite2 Version 0.21 (Alpha-Test) Copyright (c) 2004-2015 Pie Dey.Co.,Ltd.