Можно ли вручную запустить класс C #, содержащий метод Main (), из проекта, который не является проектом консольного приложения? - PullRequest
2 голосов
/ 23 мая 2019

Я довольно новичок в .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 () как самостоятельный метод и что единственный способ сделать это - создать новый Консольное приложение проект, который будет содержать этот класс.

это правда или я что-то упустил, и я могу вручную запустить этот MigrateAttachements Main () также в моем проекте XXXMigrationJob?

1 Ответ

1 голос
/ 27 мая 2019

Нет, вы не можете просто выполнить это. Это будет в DLL не exe. Вам нужно как-то его загрузить.

Я бы реорганизовал повторно используемый код в библиотеку классов. Затем создайте консольное приложение, как вы упомянули. Ссылка на повторно используемую библиотеку классов и вызов ее.

Однако, если вы не хотите создавать консольное приложение, то ссылка, на которую указывает NineBerry, обсуждает вызов кода .net с помощью PowerShell и Reflection.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...