我有一个.NET类库(作为.dll文件),该库包含一个带静态方法的类。有没有办法从命令行调用该方法?
答案 0 :(得分:14)
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
答案 1 :(得分:6)
看看这里,也许吧?
您可以使用
加载自己的程序集[Reflection.Assembly]::LoadFile(“c:\mysource\mylib.dll”)
如果您不能或不愿意使用Powershell,则需要使用控制台应用程序包含静态方法的调用,如davecoulter's answer中所述
答案 2 :(得分:2)
是的 - 但是您必须拥有一个带有Main()
方法的程序,该方法引用该.dll并且可以调用它 - 比如在控制台应用程序中。