Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация
Старый 06.03.2013, 00:31   #1
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
Post Builder/Билдер. C#

Intro

Всем привет, думаю каждый из вас пользовался программой так называемой "Билдером", она создавала исполняемые файлы (.exe) с учётом наших данных.
Т.к. авторам некоторых программ просто рутинно для каждого юзера менять пару строк кода и компилировать заново, они пользуются методом создания builder-a для готовой программы.
Тут я опишу, как написать свой билдер на C#.

Нам потребуется

1. Microsoft Visual Studio с дистрибутивом C#
2. Исходный код программы в текстовом формате (файлик .txt например).
3. Базовые знания о C#

Итак

1. Создадим Window Forms приложение. Кинем на него нужные лабелы/текст боксы.../ и самое важное - КНОПКУ.
Скрин
2. Кинем наш исходный код в ресурсы программы.
Вот например мой код:

Код:
using System;
using System.Windows.Forms;
using System.Text;
namespace WhoWantBees
{
    class Program
    {
     static public string messageToWorld = "Nickitee";
     static void Main(string[] args)
        {
         MessageBox.Show(messageToWorld + " want do the harlem shake!");
        }
    }
}
Скрин

3. Теперь самое главное, надо сделать исходный файл для компиляции, в принципе он готов, но в нём всё статическое, давайте заменим
Код:
 static public string messageToWorld = "Nickitee";
на
Код:
 static public string messageToWorld = "[DynamicMessage]";
(Изменения производим в билд файле)

4. Подключим следующее:
Код:
using System.CodeDom.Compiler;
using Microsoft.CSharp;
5. Сам код для компиляции, поставим его на эвент кнопки "Click":
Код:
            try
            {

                CompilerParameters Params = new CompilerParameters();
                Params.GenerateExecutable = true;
                Params.ReferencedAssemblies.Add("System.dll"); //Добавлем линк в исходный файл на System.dll
                Params.ReferencedAssemblies.Add("System.Windows.Forms.dll"); //Тоже самое но на System.Windwos.Forms.dlle
                Params.CompilerOptions += "\n/t:winexe"; //Убираем cmd окно путём объявления программы Windows приложением


                Params.OutputAssembly = "OpenMe.exe"; //Имя исходного файла


                string Source = Properties.Resources.bild; //Путь к файлу с исходниками

                Source = Source.Replace("[DynamicMessage]", textBox1.Text);
                var settings = new Dictionary<string, string>();
                settings.Add("CompilerVersion", "v2.0"); //Указываем версию framework-a 2.0

                CompilerResults Results = new CSharpCodeProvider(settings).CompileAssemblyFromSource(Params, Source);
         
                if (Results.Errors.Count > 0)
                {

                    foreach (CompilerError err in Results.Errors)
                        MessageBox.Show(err.ToString()); //Выводим циклом ошибки, если они есть
                }
                else
                {
                    MessageBox.Show("Готово, файл появится в том же месте где и программа :)"); //Выводим сообщение что всё прошло успешно
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }

6. Запускаем, вводим что нам надо в text бокс и жмём Build, запускаем получившийся файл (создастся там где и сама программа).


7. Profit!1111

Скрин

Гайд подготовил Nickitee специально для Zhyk.ru
Автор не несёт ответственности за пользование информацией
При копировании гайда, указывать автора и первоисточник (Zhyk.ru)
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.

Последний раз редактировалось Nickitee; 09.03.2013 в 17:47.
  Ответить с цитированием
5 пользователя(ей) сказали cпасибо:
BiG_BoY (12.07.2013), крайслер (06.03.2013), iamzero (04.04.2013), object (08.04.2013), WOLF9595 (06.01.2017)
Старый 07.03.2013, 22:03   #2
 Разведчик
Аватар для fenix2559
 
fenix2559 никому не известный тип
Регистрация: 28.06.2010
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Builder/Билдер. C#

Молодец, очень помогло. Давно искал подобный гайд Так держать вообщем
  Ответить с цитированием
Старый 28.03.2013, 13:16   #3
 Разведчик
Аватар для Bac9DKo
 
Bac9DKo неизвестен в этих краях
Регистрация: 27.10.2011
Сообщений: 1
Популярность: -88
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Builder/Билдер. C#

А зачем это нужно? Разве стандартные функции студии не могет такого?
  Ответить с цитированием
Старый 28.03.2013, 14:19   #4
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: Builder/Билдер. C#

Цитата:
Сообщение от Bac9DKoПосмотреть сообщение
А зачем это нужно? Разве стандартные функции студии не могет такого?

Это ещё какие стандартные функции студии?
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
  Ответить с цитированием
Старый 04.04.2013, 00:59   #5
 Разведчик
Аватар для iamzero
 
iamzero лучик света в грозовом небеiamzero лучик света в грозовом небеiamzero лучик света в грозовом небеiamzero лучик света в грозовом небеiamzero лучик света в грозовом небеiamzero лучик света в грозовом небеiamzero лучик света в грозовом небе
Регистрация: 04.05.2012
Сообщений: 18
Популярность: 805
Сказал(а) спасибо: 24
Поблагодарили 25 раз(а) в 18 сообщениях
 
По умолчанию Re: Builder/Билдер. C#

мммм. а чт оделать если нужно создать с формой, а не простое сообщение?
  Ответить с цитированием
Старый 04.04.2013, 02:11   #6
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: Builder/Билдер. C#

Цитата:
Сообщение от iamzeroПосмотреть сообщение
мммм. а чт оделать если нужно создать с формой, а не простое сообщение?

Объявляй новую форму
Код:
Form Main = new Form();
Дальше задаёшь ей все параметры и тд
Код:
Main.Text = "Batman";
Main.Size = new Size(100, 200);
и в инициализирующей функции после всех объявлений
Код:
Application.EnableVisualStyles();
Application.Run(Main);
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
  Ответить с цитированием
Пользователь сказал cпасибо:
iamzero (06.04.2013)
Старый 06.07.2013, 22:23   #7
 Разведчик
Аватар для Lama12
 
Lama12 никому не известный тип
Регистрация: 06.07.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Builder/Билдер. C#

Цитата:
Сообщение от NickiteeПосмотреть сообщение
Объявляй новую форму
Код:
Form Main = new Form();
Дальше задаёшь ей все параметры и тд
Код:
Main.Text = "Batman";
Main.Size = new Size(100, 200);
и в инициализирующей функции после всех объявлений
Код:
Application.EnableVisualStyles();
Application.Run(Main);

Здравствуйте! Честно сказать пришел на данный форум из за вашего урока. Администрация, обратите внимание что Nickitee приносит большую пользу данному ресурсу.

Хотел спросить следующее. Допусти мне нужно кинуть таймер и указать интервал, и естественно код на таймер. Как это реализовать?

Спасибо!
  Ответить с цитированием
Старый 06.07.2013, 23:34   #8
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Builder/Билдер. C#

Цитата:
Сообщение от Lama12Посмотреть сообщение
Допусти мне нужно кинуть таймер и указать интервал, и естественно код на таймер. Как это реализовать?

Не то что бы я кэп, но вам надо сделать ровно следующее:
Кинуть таймер на форму, указать интервал в настройках и естественно задать ваш код на таймер...
  Ответить с цитированием
Пользователь сказал cпасибо:
Joker (21.07.2013)
Старый 04.11.2014, 13:16   #9
 Разведчик
Аватар для ajaz
 
ajaz никому не известный тип
Регистрация: 01.04.2012
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Builder/Билдер. C#

Как сделать так чтобы после билда программа на выходе имела определенную иконку ? Ну тобишь сам файл программы
  Ответить с цитированием
Старый 04.01.2015, 16:13   #10
 Разведчик
Аватар для Bovi4-ua
 
Bovi4-ua неизвестен в этих краяхBovi4-ua неизвестен в этих краяхBovi4-ua неизвестен в этих краях
Регистрация: 25.04.2012
Сообщений: 1
Популярность: -237
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Builder/Билдер. C#

делаю билдер,сам билдер работает,но создаёт программу с кодам Fuck work = new Fuck();

Fuck.Url("http://asdsa.ru/");

Fuck.AddCookies(); ,которая при запуске иво не воспринимает
  Ответить с цитированием
Старый 04.05.2015, 04:59   #11
 Разведчик
Аватар для Licoze
 
Licoze неизвестен в этих краяхLicoze неизвестен в этих краяхLicoze неизвестен в этих краяхLicoze неизвестен в этих краяхLicoze неизвестен в этих краяхLicoze неизвестен в этих краяхLicoze неизвестен в этих краяхLicoze неизвестен в этих краяхLicoze неизвестен в этих краяхLicoze неизвестен в этих краяхLicoze неизвестен в этих краях
Регистрация: 18.06.2013
Сообщений: 4
Популярность: -2605
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Builder/Билдер. C#

Возникают траблы с подключением внешней библиотеки.
Сам файл компилируется, но при запуске ошибка.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Кто знает как решить?

Код:
CompilerParameters Params = new CompilerParameters();
                Params.GenerateExecutable = true;
                Params.ReferencedAssemblies.Add("System.dll");
                Params.ReferencedAssemblies.Add("System.Windows.Forms.dll");
                Params.ReferencedAssemblies.Add("System.Data.dll");
                Params.ReferencedAssemblies.Add("System.Data.SQLite.dll");
                Params.ReferencedAssemblies.Add("System.Xml.dll");
Добавлено через 7 минут
Скорее всего это потому, что компилируется программа под any CPU, как выставить х86?

Добавлено через 21 минуту
Проблему решил, если кому надо поменять платформу:
Код:
Params.CompilerOptions += "\n/t:winexe \n/platform:x86"
И остальные параметры тут [Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось Licoze; 04.05.2015 в 05:22. Причина: Добавлено сообщение
  Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Продам] Продам билдер Citadel Cocosyan Товары/услуги в Сети 3 01.03.2013 01:01
[Помогите!] билдер pavel! Вопросы и ответы, обсуждения 3 31.08.2012 22:04
[Программа] 2012 - Скайлеб билдер(флудилка) Number/1/ Общение и обсуждение 4 10.02.2012 19:26
[Помогите!] Joomla комунити билдер dina1881 Вопросы и ответы, обсуждения 1 13.02.2011 17:06
VB6. Пишем билдер Glavos Треп 1 29.03.2010 17:03

Заявление об ответственности / Список мошенников

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

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net