スクリプトを使用したスクリプト


Pythonの人々がどのようにしていくつかのコードを書くことができるかを知っています.py ファイルを実行するpython3 filename.py , “新しいプロジェクト”と“”public static void main C Chunperユーザーは、スクリプトを書くこともできます.
ロゼは、C .月16日にMSDNのブログ記事がありますC# Scripting 興味があれば.
私が本当に魅了されたツールはdotnet-script , クロスプラットホームです.あなたの実験的なニーズのためのほとんどのユースケースをカバーしています.

必要条件

  • .ネットコアSDK 2.1
  • 対コード
  • VSコードの公式C
  • インストール


    まず、最新のバージョンを確認してください.NETコアSDKdot.net . 最小の要件はです.NETコア2.1
    インストールする最も簡単な方法dotnet-script グローバルツールとしてインストールします.
    dotnet tool install --global dotnet-script
    
    
    今すぐ実行することができますdotnet script --version そして、それはdotnet-script ツール.

    ハローワールド

  • すべてのスクリプトを格納する新しいディレクトリを作成します.
  • init新しいスクリプト.
  • ラン.
  • mkdir console
    cd console
    dotnet script init hello
    dotnet script hello.csx
    
    
  • initコマンドは.csx ( c≧script )omnisharp.json IntelliSenseとVSコードのためのファイルlaunch.json デバッグサポート用のファイル.
  • csxスクリプトはdotnet script filename .

  • 生成されるhello.csx ファイルには次の内容があります.
    #!/usr/bin/env dotnet-script
    
    Console.WriteLine("Hello world!");
    
    
    最初の行は、* nixユーザーがよく知らなければならないshebangです.として実行することができます./hello.csx そして、それはちょうど働きます!( Windowsでも動作しますが.csx DotNetスクリプトを使用したファイルdotnet script register .)

    別の簡単な例


    コンソールアプリケーションの典型的なユースケースは、新しいライブラリを使って実験することですdotnet-script 仕事に最適なツールです.のことを学んでいますstateless 図書館.以下に実験について説明します.
  • 新しいスクリプトの作成dotnet script init stateless .
  • VSコードを使用してフォルダを開きますcode . .
  • Norgetパッケージをインポートします#r ディレクティブ.
  • GitHubページに行き、サンプルコードをコピーします.
  • 必要に応じてステートメントを使用するCmd+. (or Ctrl+. ).
  • デバッグ内のコードとコードf 5.
  • はい、こちらstateless.csx ファイル
    #!/usr/bin/env dotnet-script
    #r "nuget: Stateless, 4.2.1"
    
    // Copied from: https://github.com/dotnet-state-machine/stateless/blob/dev/example/OnOffExample/Program.cs
    using Stateless;
    
    const string on = "On";
    const string off = "Off";
    const char space = ' ';
    
    // Instantiate a new state machine in the 'off' state
    var onOffSwitch = new StateMachine<string, char>(off);
    
    // Configure state machine with the Configure method, supplying the state to be configured as a parameter
    onOffSwitch.Configure(off).Permit(space, on);
    onOffSwitch.Configure(on).Permit(space, off);
    
    Console.WriteLine("Press <space> to toggle the switch. Any other key will exit the program.");
    
    while (true)
    {
        Console.WriteLine("Switch is in state: " + onOffSwitch.State);
        var pressed = Console.ReadKey(true).KeyChar;
    
        // Check if user wants to exit
        if (pressed != space) break;
    
        // Use the Fire method with the trigger as payload to supply the state machine with an event.
        // The state machine will react according to its configuration.
        onOffSwitch.Fire(pressed);
    }
    
    
    Vsコードを使用して開発する新機能の注意:
  • IntelliSenseが3の後に動作しない場合、または5の後にコードアクションが使用できない場合、OmniSharpを再起動する必要があります.Cmd+Shift+P --> Omnisharp: Restart Omnisharp . 参照filipw/dotnet-script#424 を参照してください.
  • アプリケーションを実行している間、このエラーを見ることができるでしょう.「どちらのアプリケーションがコンソールを持っていないか、コンソール入力がリダイレクトされたときには、キーを読むことができません.」Vsコードはコンソールコンソールをサポートしていないデフォルトでデバッグコンソールを使用します.代わりに、統合端末を使用するように設定することによって変更することができます"console": "integratedTerminal" プロパティ.vscode/launch.json . 詳細情報here .
  • それです.あなたが私に尋ねるならば、私はそれがかなり滑らかであると思います.
    好きなものdotnet-script
  • 必要なnugetパッケージを含むすべての関連コードは、単一のファイルに存在できます.
  • 完全で信頼できるIntellisense.
  • デバッガのサポート.
  • なしpublic static void main or .csproj ファイル.