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[] ={"Foo.EXE"};
            
CompilerParameters compilerParams = new CompilerParameters
            
{OutputAssembly "D:\\Foo.EXE"GenerateExecutable true};//ОШИБКА
 
            // Компиляция 
            
CompilerResults results provider.CompileAssemblyFromSource(compilerParamssource); 
 
            
// Выводим информацию об ошибках 
            
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, время: 02:53.

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