如果有一种方法可以在新进程中执行静态的.DLL方法,而不必为它创建一个.EXE,我很好奇
AFAIK,这是不可能的本机Win32 / 64 DLL。 .NET DLL程序集怎么样?
更新:我忘了提到我主要感兴趣的是以编程方式(从C#代码,具体到)。
谢谢!
结论:虽然没有人敢于拼出来,但答案似乎都倾向于“不”。需要通过一种常规方式(EXE,PowerShell等)启动一个进程,然后说服该进程加载DLL并在其中执行代码。我想我是错误地希望受管理的DLL能够更多。
再次感谢所有人的追捧!
只需启动PowerShell提示符。
[Reflection.Assembly]::LoadFile("Name of your dll") [Your.NameSpace.And.TypeName]::YourMethod()
我看到你想从C#
使用装配合格名称创建类型:
var t = Type.GetType("NameSpace.Type,Name Of Dll"); var m = t.GetMethod("NameOfMethod"); m.Invoke(null,new object[] { params });
这应该让你开始。
我不完全知道你在“新进程”中的含义,但是不要把它打包成一个.exe / .ps1文件,你可以从命令行开始一些选项。
所以你不必为每个想要调用的DLL创建一个新的.exe。
但是,如果你想开始一个新的进程,你应该开始一个新的进程,这通常是通过启动一个新的.EXE来实现的。