既存のC#コードスニペット/.CSファイルをPowerShellスクリプトに定期的に変換する必要があります。このプロセスを自動化するにはどうすればよいですか?
。csファイルをコマンドレットに変換 できるメソッドがあることは承知していますが、私はC#コードをスクリプトまたはモジュールに変換することにのみ関心があります。
どういうわけか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)
クラスの静的メソッドに対応するPowerShellスクリプトを表示できる ReflectorPowerShellのアドイン があります。
例のよい投稿があります: http://blogs.msmvps.com/paulomorgado/2009/09/17/powershell-for-the-net-developer/ 。
Adam Discrollには created Roslynベースのコンバーターがあり、 online code converter も提供しています-単純なスクリプトでは機能しているようですが、静的メンバーやクラスに問題があります。