我可以从命令行运行 .NET 程序集中的代码吗?

发布于 2024-11-26 06:32:41 字数 62 浏览 1 评论 0原文

我有一个 .NET 类库(作为 .dll 文件),该库包含一个具有静态方法的类。有没有办法从命令行调用该方法?

I have a .NET class library (as a .dll file) and that library contains a class with a static method. Is there a way to call that method from a command line?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

能怎样 2024-12-03 06:32:41

这里是有关如何从 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

Here is a guide on how to load a dll from Powershell and call methods in it.

The most important part of the post are these commands:

[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
难以启齿的温柔 2024-12-03 06:32:41

也许看看这里?

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

加载自己的程序集

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

您可以使用If 如果您无法或不愿意使用 Powershell,则需要使用控制台应用程序包装静态方法的调用,如 davecoulter 的回答

Have a look here, maybe?

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

And you can load your own assembly using

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

If you're unable or unwilling to use Powershell, you need to wrap the call for your static method with a console application, as stated in davecoulter's answer

玉环 2024-12-03 06:32:41

是的 - 但您必须拥有一个带有 Main() 方法的程序,该方法引用该 .dll 并可以调用它 - 例如在控制台应用程序中。

Yes -- but you'll have to have a program with a Main() method that references that .dll and can call it-- say in a console application.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文