web-dev-qa-db-ja.com

C#コードをPowerShellスクリプトに変換する方法

既存のC#コードスニペット/.CSファイルをPowerShellスクリプトに定期的に変換する必要があります。このプロセスを自動化するにはどうすればよいですか?

。csファイルをコマンドレットに変換 できるメソッドがあることは承知していますが、私はC#コードをスクリプトまたはモジュールに変換することにのみ関心があります。

32
MagicAndi

どういうわけかC#を直接PowerShellに変換するものを探しているのは知っていますが、これはそれを示唆するのに十分近いと思いました。

PS v1では、コンパイル済みの.NET DLLを使用できます。

PS> $client = new-object System.Net.Sockets.TcpClient
PS> $client.Connect($address, $port)

PS v2では、C#コードをPowerShellに直接追加し、Add-Typeを使用して「変換」せずにそれを使用できます( [〜#〜] msdn [〜#〜] から直接コピー)

C:\PS>$source = @"
public class BasicTest
{
    public static int Add(int a, int b)
    {
        return (a + b);
    }

    public int Multiply(int a, int b)
    {
        return (a * b);
    }
}
"@

C:\PS> Add-Type -TypeDefinition $source

C:\PS> [BasicTest]::Add(4, 3)

C:\PS> $basicTestObject = New-Object BasicTest 
C:\PS> $basicTestObject.Multiply(5, 2)
68
James Pogran

クラスの静的メソッドに対応するPowerShellスクリプトを表示できる ReflectorPowerShellのアドイン があります。

例のよい投稿があります: http://blogs.msmvps.com/paulomorgado/2009/09/17/powershell-for-the-net-developer/

12
MagicAndi

Adam Discrollには created Roslynベースのコンバーターがあり、 online code converter も提供しています-単純なスクリプトでは機能しているようですが、静的メンバーやクラスに問題があります。

1
White hawk