forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   С# (http://forum.boolean.name/forumdisplay.php?f=128)
-   -   Компиляция (http://forum.boolean.name/showthread.php?t=13191)

den 23.08.2010 18:06

Компиляция
 
Есть ли в C# (.NET Framework) класс для компиляции (в .exe или .dll) кода прямо из приложения?

pax 23.08.2010 18:09

Ответ: Компиляция
 
Думаю вот эта и вот эта статейки тебе помогут

den 23.08.2010 18:30

Ответ: Компиляция
 
то что надо;)

pax 23.08.2010 19:34

Ответ: Компиляция
 
Кстати вот в этой теме есть исходники моего проекта по созданию Dll из decls блица

den 23.08.2010 22:09

Ответ: Компиляция
 
:( почему то не те не твой пример не работают.
PHP код:

using System; 
using System.CodeDom.Compiler; 
using System.Collections.Generic; 
using Microsoft.CSharp; 
 
namespace 
ConsoleCompiler 
{ 
    
internal class Program 
    
{ 
        [
STAThread]
        private static 
void Main(string[] args) 
        { 
            
// Source code для компиляции 
            
string source = 
            @
" 
namespace Foo 
{ 
    public class Bar 
    { 
        static void Main(string[] args) 
        { 
            Bar.SayHello(); 
        } 
 
        public static void SayHello() 
        { 
            System.Console.WriteLine(""Hello World""); 
        } 
    } 
} 
            "
; 
 
            
CSharpCodeProvider provider = new CSharpCodeProvider();
            
string[] a ={"Foo.EXE"};
            
CompilerParameters compilerParams = new CompilerParameters
            
{OutputAssembly = "D:\\Foo.EXE", GenerateExecutable = true};//ОШИБКА
 
            // Компиляция 
            
CompilerResults results = provider.CompileAssemblyFromSource(compilerParams, source); 
 
            
// Выводим информацию об ошибках 
            
Console.WriteLine("Number of Errors: {0}", results.Errors.Count); 
            foreach (
CompilerError err in results.Errors) 
            { 
                
Console.WriteLine("ERROR {0}", err.ErrorText); 
            } 
        } 
    } 
} 

Цитата:

error CS1526: A new expression requires () or [] after type

Dream 23.08.2010 22:16

Ответ: Компиляция
 
кэп какбе намекает.
Ладно. Ты компилишь скорее всего на .NET 2.0, где нету такого чтобы можно было определять проверти класса сразу при создании.
Попробуй так
Цитата:

CompilerParameters compilerParams = new CompilerParameters();
compilerParams.OutputAssembly = "D:\\Foo.EXE";
compilerParams.GenerateExecutable = true;

den 23.08.2010 22:30

Ответ: Компиляция
 
Спс, помогло!:)
Цитата:

Ладно. Ты компилишь скорее всего на .NET 2.0, где нету такого чтобы можно было определять проверти класса сразу при создании.
Да у меня 2005 студия, всё никак 2008 скачать не решусь:)


Часовой пояс GMT +4, время: 11:57.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot