2011-07-25 12 views
5

私は.NETクラスライブラリ(.dllファイルとして)を持っており、そのライブラリには静的メソッドを持つクラスが含まれています。コマンドラインからそのメソッドを呼び出す方法はありますか?コマンドラインから.NETアセンブリからコードを実行できますか?

+0

はあなたがコマンド – Devjosh

+0

@Devjoshとして、コマンドラインから静的関数を使用することを意味しています:はい、私は.CMDを作成したいですファイルには 'magicallyCall MyAssembly.MyClass.DoStuff()'などが含まれています。 – sharptooth

答えて

10

HereはPowershellからDLLを読み込み、その中のメソッドを呼び出す方法に関するガイドです。

ポストの最も重要な部分は、これらのコマンドです:

[C:\temp] 
PS:25 > notepad MyMathLib.cs 

(…) 

[C:\temp] 
PS:26 > csc /target:library MyMathLib.cs 
Microsoft (R) Visual C# 2005 Compiler version 8.00.50727.42 
for Microsoft (R) Windows (R) 2005 Framework version 2.0.50727 
Copyright (C) Microsoft Corporation 2001-2005. All rights reserved. 


[C:\temp] 
PS:27 > [Reflection.Assembly]::LoadFile(“c:\temp\MyMathLib.dll”) 

GAC Version  Location 
— ——-  ——– 
False v2.0.50727  c:\temp\MyMathLib.dll 



[C:\temp] 
PS:28 > [MyMathLib.Methods]::Sum(10, 2) 
12 

[C:\temp] 
PS:29 > $mathInstance = new-object MyMathLib.Methods 
Suggestion: An alias for New-Object is new 

[C:\temp] 
PS:30 > $mathInstance.Product(10, 2) 
20 
+2

私よりもリンク先がずっと良いです。 =) –

5

こちらをご覧ください。

http://blog.usepowershell.com/2009/03/exploring-the-net-framework-with-powershell-static-members-part-4/

そして、あなたは、あなたがPowerShellを使用することができないか、不本意している場合は、コンソールアプリケーションを使用して、静的メソッドの呼び出しをラップする必要が

[Reflection.Assembly]::LoadFile(“c:\mysource\mylib.dll”) 

を使用して、独自のアセンブリをロードすることができ、 davecoulter's answer

2

はい - ただし、コンソールアプリケーションでは、その.dllを参照するMain()メソッドを持つプログラムを用意する必要があります。

関連する問題