2016-05-30 11 views
6

最後にコマンドラインからC#スクリプトファイルを実行する簡単な方法はありますか?コマンドラインからシングル* .csスクリプトを実行

私はdiscussion on github

と私はdotnet run Test.csは仕事をするべきだと思う。このスレッドに応じているのを見ました。

しかし、である私のTestClassを用:

using System; 
namespace Scripts 
{ 
    public class Program 
    { 
     public static void Main(string[] args) 
     { 
      Console.Out.WriteLine("This is the miracle"); 
     } 
    } 
} 

それは

PM> dotnet run .\Test.cs 
dotnet.exe : Object reference not set to an instance of an object.At line:1 char:1 

それでは、どのように私は比較的簡単な方法で、コマンドラインを使用して単一のファイルにコードを実行される可能性が失敗しましたか?


UPD 1:として正しく@Leeで述べたと@svick dotnet runは、プロジェクトを実行しているためです。しかし、私の最初の質問は、 - どのように単一のファイルを実行する。たぶん、いくつかのオプションroslynを使用して?

+0

この[リンク](https://msdn.microsoft.com/en-us/library/k1sx6ed2.aspx?f=255&MSPPError=-2147217396)をご確認ください。 –

+1

そのリンクは非常に古いです。 [これは 'dotnet run'の現在のドキュメントです。](http://dotnet.github.io/docs/core-concepts/core-sdk/cli/dotnet-run.html) – svick

+0

@MANISH 'dotnet' CLIです。 – svick

答えて

1

確かにproject.jsonファイルが必要です。ここでは、動作させるには裸の骨のファイルです:

{ 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.0-*", 
     "type": "platform" 
    } 
    }, 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": {} 
    } 
    }, 

    "buildOptions": { 
    "emitEntryPoint": true 
    } 
} 

emitEntryPointに注意してください。

最初にdotnet restoreにしてからdotnet run test.csにする必要がありました。

+0

このオプションはプロジェクト専用で、単一のスクリプトを実行することはできません。 –

+0

私はそうだと思うが、もし誰かがそれが良いと確信できるならば。私はあなたが "ドットネット"を作成すると、それが2つのファイルを作成することに気付きます。 "Hello World" Program.csと簡単なproject.jsonファイル。 –

1

これはPowershellを使用して行うことができます。 を想定し、あなたのコードは、現在のフォルダ内のファイルtest.csである:

$source = (Get-Content .\test.cs) -join " " 
Add-Type $source -Language CSharp 
[Scripts.Program]::Main(("")) 

は、どのように私は 比較的容易な方法でコマンドラインを使用して単一のファイルにコードを実行する可能性

PS> .\test.ps1 
This is the miracle 

を与えます?

上記のコードを関数にラップし、ファイル名をパラメータにして、その関数をPowershellプロファイルに置き、必要なときに実行します。しかし、他のアセンブリが必要になるとすぐに、呼び出すときに指定する必要があるという事実に注意してください。 Here's a slightly more elaborat example

関連する問題