Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2015, 17:54   #1
Jeckor
Пользователь
 
Регистрация: 27.10.2013
Сообщений: 22
По умолчанию Скомпилировать код в IL

Здравствуйте! Кто знает, как скомпилировать *.cs исходник в VS? Пробовал использовать метод CodeCompiler.FromFile или CodeCompiler.CompileAssemblyFromFil e , однако даже не могу их найти:

Безымянный3.png

Кстати в строке "CodeCompiler cc = (CodeCompiler)cdp.CreateCompiler(); " без явного приведения типов не обойтись - выдает ошибку, хотя и не понятно почему.

Как еще можно скомпилировать исходник?

Кстати, а можно ли работать в cmd прямо из VS? Если да, то можно просто задать команду: "cl *.cs" и исходник скомпилируется.
Jeckor вне форума Ответить с цитированием
Старый 21.03.2015, 18:08   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что такое "скомпилировать *.cs исходник в VS"? Что именно вы хотите?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.03.2015, 18:22   #3
Jeckor
Пользователь
 
Регистрация: 27.10.2013
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Что такое "скомпилировать *.cs исходник в VS"? Что именно вы хотите?
Есть исходник с расширением .cs. Нужно через код C# сделать исполняемый файл.
Jeckor вне форума Ответить с цитированием
Старый 21.03.2015, 18:26   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык а cmd причем тогда?
http://stackoverflow.com/questions/8...code-fragments
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.03.2015, 18:46   #5
Jeckor
Пользователь
 
Регистрация: 27.10.2013
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Дык а cmd причем тогда?
http://stackoverflow.com/questions/8...code-fragments
Спасибо за ссылку. Вот код:

Код:
var csc = new CSharpCodeProvider();
            CompilerParameters cp = new CompilerParameters();
            cp.GenerateExecutable = true;
            CompilerResults res = csc.CompileAssemblyFromFile(cp, write.cs_adress);
Только не понятно, а где exe-шник?)
Jeckor вне форума Ответить с цитированием
Старый 21.03.2015, 18:58   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

OutputAssembly
https://msdn.microsoft.com/en-us/lib...vs.110%29.aspx
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 22.03.2015, 15:33   #7
Jeckor
Пользователь
 
Регистрация: 27.10.2013
Сообщений: 22
По умолчанию

Вот код:

Код:
string exe = ".exe";
var csc = new CSharpCodeProvider(); 
CompilerParameters cp = new CompilerParameters(); 
cp.GenerateExecutable = true; //Генерировать исполняемый файл
cp.OutputAssembly = write.cs_directory + write.cs_name + exe; //Имя выходной сборки
CompilerResults res = csc.CompileAssemblyFromSource(cp, File_Code(write.cs_adress));
Проблема в том, что почему-то после сих действий не появляется .exe-шник. И я не понимаю, почему.
Jeckor вне форума Ответить с цитированием
Старый 22.03.2015, 15:52   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ошибки компиляции-то проверяете?

Код:
            var csc = new CSharpCodeProvider(new Dictionary<string, string>() { { "CompilerVersion", "v4.0" } });

            var cp = new CompilerParameters
            {
                GenerateExecutable = true,
                OutputAssembly = AppDomain.CurrentDomain.BaseDirectory + "\\1.exe",
                CompilerOptions = "/optimize"
            };

            cp.ReferencedAssemblies.Add("System.dll");
            cp.ReferencedAssemblies.Add("System.Core.dll");

            CompilerResults cr = csc.CompileAssemblyFromSource(cp, @"
using System;
namespace ConsoleApplication {
class Program {
public static void Main(string[] args) {
    Console.WriteLine(""Hello"");
    Console.ReadKey();
} } }");

            if (cr.Errors.Count > 0)
            {
                Console.WriteLine("Errors");
                foreach (CompilerError ce in cr.Errors)
                {
                    Console.WriteLine("  {0}", ce);
                    Console.WriteLine();
                }
            }
            else
            {
                Console.WriteLine("Built {0} successfully.", cr.PathToAssembly);
            }
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 22.03.2015 в 15:59.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите скомпилировать! Dimka-novitsek Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 16.06.2014 22:47
скомпилировать Kreky Помощь студентам 1 16.11.2011 23:47
Движок сайта на Perl - чем закрыть или скомпилировать в байт код? svalkasu Perl 1 23.04.2009 14:00
Невозможно скомпилировать The_Immortal Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 09.10.2008 19:03
как переписать код программы с книги, потом сохранить и скомпилировать? Graff_1 Помощь студентам 3 14.05.2008 16:21