Может ли. Net Framework 4.6.2 проект сгенерировать. Net Core DLL? - PullRequest
2 голосов
/ 10 января 2020

Возможно ли для проекта. Net Framework 4.6.2 использовать System.Reflection.Emit для создания. Net Core или. Net Стандартного DLL-файла? Теперь у меня есть проект, который генерирует DLL-файл. Net Framework 4.0. Могу ли я где-нибудь изменить некоторые настройки, чтобы сгенерированный файл DLL использовал. Net Core или. Net Standard вместо?

Редактировать: Вот пример. Я получил следующий код с этой страницы, которая охватывает библиотеку System.Reflection.Emit .

    static void Main(string[] args)
    {
        AppDomain ad = AppDomain.CurrentDomain;
        AssemblyName am = new AssemblyName();
        am.Name = "TestAsm";
        AssemblyBuilder ab = ad.DefineDynamicAssembly(am, AssemblyBuilderAccess.Save);
        ModuleBuilder mb = ab.DefineDynamicModule("testmod", "TestAsm.exe");
        TypeBuilder tb = mb.DefineType("mytype", TypeAttributes.Public);
        MethodBuilder metb = tb.DefineMethod("hi", MethodAttributes.Public |
        MethodAttributes.Static, null, null);
        ab.SetEntryPoint(metb);

        ILGenerator il = metb.GetILGenerator();
        il.EmitWriteLine("Hello World");
        il.Emit(OpCodes.Ret);
        tb.CreateType();
        ab.Save("TestAsm.exe");
    }

Когда я запускаю этот код, он генерирует TestAsm.exe. Когда я открываю TestAsm.exe в моем декомпиляторе (JetBrains dotPeek), он показывает, что TestAsm.exe - « msil,. Net Framework v4.0, Debug »

Как мне изменить это? Мой проект -. Net 4.6.2, поэтому сгенерированный EXE-файл не основан на версии платформы генерирующего проекта.

...