Возможно ли для проекта. 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-файл не основан на версии платформы генерирующего проекта.