Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Предоставляет доступ к экземплярам генератора кода C# и компилятора кода
- CSharpCodeProvider Provider = new CSharpCodeProvider();
- // Параметры компилятора
- CompilerParameters Parameters = new CompilerParameters
- {
- // Создаётся исполняемый файл вместо библиотеки классов.
- GenerateExecutable = true,
- // Полное имя файла сборки.
- OutputAssembly = "Output.exe",
- // Создание отладочной информации.
- IncludeDebugInformation = false,
- // Сохранение сборки, как физический файл.
- GenerateInMemory = true,
- // Уровень, на котором компилятор должен начать отображать предупреждения.
- WarningLevel = 3,
- // Рассмотр всех предупреждений как ошибки.
- TreatWarningsAsErrors = false,
- // Аргумент компилятора для оптимизации вывода.
- // "/optimize" - Включает ( или отключает) оптимизацию.
- // "/platform" - Пределы, какие платформы этот код можно запускать на: x86, Itanium, x64, AnyCPU или anycpu32bitpreferred. По умолчанию AnyCPU.
- // "/target" - Задает формат выходного файла с помощью одного из четырех вариантов: /target:appcontainerexe, /target:exe, /target:library, /target:module, /target:winexe, /target:winmdobj.
- // "/unsafe" - Позволяет небезопасный код.
- CompilerOptions = "/optimize /target:winexe",
- // Установка временной коллекции файлов.
- // TempFileCollection хранит временные файлы, созданные во время сборки в текущем каталоге, и не удаляет их после компиляции.
- TempFiles = new TempFileCollection(".", true)
- };
- if (Provider.Supports(GeneratorSupport.EntryPointMethod))
- {
- // Класс, содержащий основной метод исполняемого файла.
- Parameters.MainClass = "Test.Program";
- }
- if (Directory.Exists("Resources"))
- {
- if (Provider.Supports(GeneratorSupport.Resources))
- {
- // Установка встроенного файла ресурсов сборки.
- // Это полезно для нейтральных к культуре ресурсов или ресурсов по умолчанию (резервных).
- Parameters.EmbeddedResources.Add("Resources\\Default.resources");
- // Установка связанных справочных файлов ресурсов сборки.
- // Эти ресурсы включены в отдельные файлы сборки, обычно локализованные для определенного языка и культуры.
- Parameters.LinkedResources.Add("Resources\\nb-no.resources");
- }
- }
- // Подключение библиотек
- Parameters.ReferencedAssemblies.Add("System.dll");
- Parameters.ReferencedAssemblies.Add("mscorlib.dll");
- Parameters.ReferencedAssemblies.Add("System.Data.dll");
- Parameters.ReferencedAssemblies.Add("System.Core.dll");
- Parameters.ReferencedAssemblies.Add("System.Xml.Linq.dll");
- Parameters.ReferencedAssemblies.Add("System.Data.DataSetExtensions.dll");
- Parameters.ReferencedAssemblies.Add("Microsoft.CSharp.dll");
- Parameters.ReferencedAssemblies.Add("System.Deployment.dll");
- Parameters.ReferencedAssemblies.Add("System.Drawing.dll");
- Parameters.ReferencedAssemblies.Add("System.Net.Http.dll");
- Parameters.ReferencedAssemblies.Add("System.Windows.Forms.dll");
- Parameters.ReferencedAssemblies.Add("System.Xml.dll");
- // Список исполняемых файлов
- String[] Files = new String[]
- {
- @"D:\System\User\Документы\Projects Visual Studio\TestCompiler\TestCompiler\Form1.cs",
- @"D:\System\User\Документы\Projects Visual Studio\TestCompiler\TestCompiler\Form1.Designer.cs",
- //@"D:\System\User\Документы\Projects Visual Studio\TestCompiler\TestCompiler\Form1.resx",
- @"D:\System\User\Документы\Projects Visual Studio\TestCompiler\TestCompiler\Program.cs",
- //@"D:\System\User\Документы\Projects Visual Studio\TestCompiler\TestCompiler\TestCompiler.csproj"
- };
- // Компиляция кода
- CompilerResults Result Provider.CompileAssemblyFromFile(Parameters, Files);
- // Вывод ошибок компилятора
- String Errors = "";
- for (int i = 0; i < Results.Errors.Count; i++)
- {
- Errors += "Номер ошибки: " + Results.Errors[i].ErrorNumber + "\n" + "Позиция: [" + Results.Errors[i].Line + ", " + Results.Errors[i].Column + "]\n" + Results.Errors[i].ErrorText;
- Errors += (i < Results.Errors.Count - 1) ? "\n\n" : "";
- }
Add Comment
Please, Sign In to add comment