执行.Net dll

时间:2014-02-24 14:59:33

标签: c# .net dll process

我想运行一个单独的进程并使用一个dll,这是一个winforms应用程序作为dll。之前已经提出过这个问题:

Is it possible to execute a .NET dll without an exe to load it?

由于已经有几年了,我想重温一下这个问题。到目前为止,.Net框架中是否有可用的东西?这技术上可行吗?我知道它在java中,所以我想知道.Net是否也能做到这一点......

由于

更多信息:这就是我想要实现的目标。现在有一段代码可以检测我们的应用程序中的死锁。该检测在另一个胎面中显而易见地运行。因此,如果发生这种情况,我想运行另一个进程,向用户显示一个对话框并通知他死锁,然后杀死死锁的应用程序。

我希望它是一个能够向用户显示对话框的不同进程,因为大部分时间主线程都将涉及死锁,例如。由于gui主线程被阻止,我无法显示某些内容。

1 个答案:

答案 0 :(得分:0)

已经多次回答:

来自Killercam

 // Execute the method from the requested .dll using reflection (System.Reflection).
    Assembly DLL = Assembly.LoadFrom(strDllPath);
    Type classType = DLL.GetType(String.Format("{0}.{0}", strNsCn));
    object classInst = Activator.CreateInstance(classType, paramObj);
    Form dllWinForm = (Form)classInst;  
    dllWinForm.ShowDialog();

来自Code4life

在Solution Explorer中,右键单击References并选择Add Reference。这是您添加自定义设计的C#DLL的地方。

现在打开Program.cs,并进行以下更改:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using ****your DLL namespace here****
namespace WindowsFormsApplication2
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new [****your startup form (from the DLL) here****]);
        }
    }
}