我可以从不是控制台应用程序项目的项目中手动运行包含Main()方法的C#类吗?

时间:2019-05-23 08:14:50

标签: sharepoint

我在 .NET \ C#(我来自Java)中是个新手,并且我有以下疑问。

在我的解决方案中,我有一个项目应该是SharePoint作业,在我的解决方案资源管理器中是这样的:

enter image description here

我知道此项目已部署为SharePoint作业,并且运行良好。

现在,我需要手动执行某种与此作业相关的特定操作。因此,我的想法是在该项目中创建此 MigrateAttachments 类,并在此处放置 Main()方法,然后仅将该类作为脚本执行:

namespace XXXMigrationJob
{
    class MigrateAttachments
    {
        static void Main(string[] args)
        {

            Debug.Print("MigrateAttachments Main() START");

            Debug.Print("MigrateAttachments Main() END");
        }
    }
}

但是在我看来,我无法将此Main()方法作为独立方法执行,唯一的方法是创建一个全新的 Console Application 项目,该项目将包含这个班。

是真的还是我缺少什么,可以在我的XXXMigrationJob项目中手动运行 MigrateAttachements Main()方法吗?

2 个答案:

答案 0 :(得分:1)

不,您不能真正执行该操作。它将在DLL中而不是exe中。您需要以某种方式进行引导。

我将可重用代码重构到类库中。然后创建您提到的控制台应用程序。引用可重用的类库并调用它。

但是,如果您不想创建控制台应用程序,那么NineBerry插入的链接将讨论使用PowerShell和Reflection调用.net代码。

答案 1 :(得分:-1)

在C#应用程序中,我们可以有多个Main方法,但是只有其中一个具有有效Main签名的方法可以被视为Startup或应用程序的入口点。

如果您有工作,这是一个控制台应用程序。您需要转到Program类中,找到一个Main()方法,然后在其中执行所有Debug方法。