Jadi mengerjakan proyek kecil, saya perlu mengkompilasi beberapa file teks ke dalam executable demi optimasi dan sebagainya. Ketika saya menjalankan kode yang seharusnya mengkompilasi file, itu berhenti dan memberi saya pengecualian itu di CompileAssemblyFromSource. Dan setelah melihat beberapa perbaikan potensial, saya menyadari bahwa saya tidak tahu apa yang menyebabkan masalah ini dan bagaimana saya dapat memperbaikinya. Mengingat asal pengecualian, tampaknya sesuatu yang saya gunakan memiliki versi di mana CompileAssemblyFromSource tidak kompatibel dengannya tetapi kemudian muncul masalah, saya tidak tahu apa yang tidak memiliki versi yang kompatibel dan saya tidak yakin bagaimana cara menerapkannya perbaikan untuk itu.

Catatan: Saya yakin itu bukan sesuatu dengan versi .NET Network saya, baik .NET atau .NET Core karena saya sudah memeriksa versi mereka dan sepertinya itu kompatibel dengan CAFS. Jadi saya bingung.

Ini adalah kode yang saya gunakan untuk membuat executable jika membantu.

var csc = new CSharpCodeProvider();
var parameters = new CompilerParameters(new[] { "mscorlib.dll", "System.Core.dll" }, path, true);
parameters.GenerateExecutable = true;

var code = File.ReadAllText(@"C:\Users\user\source\repos\M-KDTEA_main\M-KDTEA_main\keys\en-us\en-us_ekey.txt");
var results = csc.CompileAssemblyFromSource(parameters, code);

Banyak terima kasih sebelumnya!

1
Tchinka 20 November 2020, 05:20

1 menjawab

Jawaban Terbaik

Saya mengalami masalah yang sama saat mem-porting aplikasi lama ke inti dotnet.
Itu karena kompiler CodeDom, yang tersedia di dotnet "klasik", tidak tersedia untuk dotnet core.
Tetapi Anda dapat menggunakan kompiler roselyn untuk melakukan pekerjaan serupa.
Saya dapat membuat aplikasi saya berfungsi dengan mengikuti artikel ini (menggantikan VisualBasic dengan CSharp) yang memanfaatkan API penganalisis roselyn untuk membuat kode dengan cepat dan memuat rakitan.

0
baywet 24 November 2020, 20:25