Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для GENDALF_ISTARI
16 / 33 / 19
Регистрация: 20.08.2013
Сообщений: 740

Как собрать статическую линковку ILMerge?

31.12.2014, 18:34. Показов 1616. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C# Скинте как собрать статистическую линковку ILMerge

смотрел видео https://www.youtube.com/watch?v=wNIKhWaJ9Mo

понял так вот такой кодик набросал
он та правильны - проблема в сборке самой, а не в этом коде

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Windows.Forms.VisualStyles;
 
namespace ILmerge_compile_bat
{
    class Program
    {
        static void Main(string[] args)
        {
            FileInfo f = new FileInfo("ILMerge.exe");
            string file_bat_compil = "bat_compil_all_file.bat"; 
            int exit = 1;
 
            do
            {
            if (f.Exists==true)
            {
                int a = 0;
                string envirom = Environment.CurrentDirectory, bat_sum = "", output = "", bat_all = "";
                Console.BackgroundColor = ConsoleColor.DarkCyan;
                Console.Clear();
                Console.ForegroundColor = ConsoleColor.White;
                Console.Title = "Compile ILMerge to all exe";
                Console.WriteLine("Введите число склееных файлов: ");
                try
                {
                    a = Convert.ToInt32(Console.ReadLine());
                }
                catch (Exception ex)
                {
                    
                    MessageBox.Show(ex.Message,"ОШИБКА",MessageBoxButtons.OK,MessageBoxIcon.Error);
                    Environment.Exit(0); 
                }
                
 
                string[] infos = new string[a];
 
                for (int i = 0; i < a; i++)
                {
                    Console.WriteLine("Введите " + (i + 1) + " имя файла склейки");
                    infos[i] = Console.ReadLine();
 
                    bat_all += infos[i] + " ";
 
                    FileInfo[] fi = new FileInfo[a];
                    fi[i] = new FileInfo(infos[i]);
                    if (fi[i].Exists==false)
                    {
                        MessageBox.Show("Такого файла нету: " + fi[i].Name, "ОШИБКА", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        Environment.Exit(0); 
                    }
                   
                }
 
                Console.WriteLine("Введите выходной вайл склейки: ");
                output = Console.ReadLine();
 
                bat_sum = envirom + "\\"+f.Name + " /target:winexe /out:" + output + " " + bat_all;
                write(file_bat_compil, bat_sum);
                Console.WriteLine("BAT файл создан, для склейки в exe");
                process_bat2(true,file_bat_compil,3);
                MessageBox.Show("Статистическая линковка закончина\n" + "Выходной файл bat: " + output, "INFO", MessageBoxButtons.OK, MessageBoxIcon.Information);
                
                Console.ReadKey(true);
            }
            else
            {
                MessageBox.Show("Нету файла для статистической линковки: "+f.Name, "ОШИБКА",MessageBoxButtons.OK,MessageBoxIcon.Error);
                Environment.Exit(0); 
            }
            } while (exit>0);
        }
 
        static void write(string file_name,string info)
        {
            StreamWriter bat_writ = new StreamWriter(file_name,false,Encoding.GetEncoding(866));
            bat_writ.WriteLine("@ echo off");
            //bat_writ.WriteLine("color 3f");
            bat_writ.WriteLine("title Compile ILMerge");
            bat_writ.WriteLine(info);
            bat_writ.WriteLine("pause");
            bat_writ.Close();
        }
 
        static void process_bat(bool flag, string command, int form_vis)
        {
            if (flag==true)
            {
            Process pro_bat=new Process();
            pro_bat.StartInfo.CreateNoWindow = false;
            pro_bat.StartInfo.FileName = "cmd.exe";
            pro_bat.StartInfo.Arguments = "/c ";
            switch (form_vis)
            {
                case 1:
                    pro_bat.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                    break;
                case 2:
                    pro_bat.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
                    break;
                case 3:
                    pro_bat.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
                    break;
                case 4:
                    pro_bat.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
                    break;
                default:
                    MessageBox.Show("В не области вывода запуска формы", "ОШИБКА", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    break;
 
            }
            pro_bat.Start();
            pro_bat.Close();
            }
        }
 
        static void process_bat2(bool flag,string file_bat,int form_vis)
        {
            if (flag==true)
            {
            Process pro_bat = new Process();
            pro_bat.StartInfo.CreateNoWindow = false;
            pro_bat.StartInfo.FileName = file_bat;
            //pro_bat.StartInfo.Arguments = "/c ";
            switch (form_vis)
             {
                case 1:
                     pro_bat.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;  
                    break;
                case 2:
                    pro_bat.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
                    break;
                case 3:
                    pro_bat.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
                    break;
                case 4:
                    pro_bat.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
                    break;
                default:
                     MessageBox.Show("В не области вывода запуска формы", "ОШИБКА", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    break;
                      
              }
            
            pro_bat.Start();
            pro_bat.Close();
            }
        }
    }
}
Но что то начал собирать в одну екзешку

System.Xml.dll
System.Data.dll
System.dll
ConsoleApplication1.exe

в одну екзкшку
Console.exe

не вышло ни чего
вот фото

может я не правильно понял нужно создать один проект
где будет библиотека с зависимостями NET Framework + и екзешка без фраймеворка но зависима от этой библиотеки
но все равно это не решает проблему статистической линковки
ведь как требывало это наличие NET Framework установленого на ПК , так и требует
А мне надо екзешку без зависимости NET Framework
одна екзешка в которая запускается без установленого NET Framework на ПК

может ILMerge решит это
подскажите пожалуйста мощные
Миниатюры
Как собрать статическую линковку ILMerge?  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.12.2014, 18:34
Ответы с готовыми решениями:

Как пользоваться ILMerge?
Недавно скачал утилиту ILMerge. Хотел её использовать для объединения сборок, но никак не могу с ним разобраться. P.S. Извините за...

ILMerge вылетает с ошибкой
Написал программу, использующую пару библиотек из Nuget. В итоге в папке Debug получились файлы ddl, xml, один exe, один pdb, один...

Как выполнить статическую линковку в cmake?
Всем привет. Пробую собрать проект с помощью cmake (3.0) на ubuntu. Мне надо, чтобы зависимости были зашиты в исполняемый файл (static...

7
Эксперт HardwareЭксперт Windows
22200 / 12121 / 653
Регистрация: 11.04.2010
Сообщений: 53,466
01.01.2015, 13:07
хорошо отметили, раз разделом промазали
0
 Аватар для Prog_maker
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
01.01.2015, 14:55
Вы от NET framework никак не отвяжитесь. Это сделать не возможно.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
01.01.2015, 15:12
Цитата Сообщение от GENDALF_ISTARI Посмотреть сообщение
А мне надо екзешку без зависимости NET Framework
Значит не мучайте .NET и переходите на тот язык, который для этого предназначен. С++, к примеру.
1
 Аватар для GENDALF_ISTARI
16 / 33 / 19
Регистрация: 20.08.2013
Сообщений: 740
01.01.2015, 18:01  [ТС]
Спасибо
Подскажите какой редактор лучше в С++
1) Visual studio - win32 , MFC
2) QT
3) Dewelop wxdevcpp C++ full
4) IDE NetBeans С++
и проще )))

или еще знаите какие

хотя смотрите парни видел по языку C#, Утелиту Spoon Studio
она собирает в одну екзешку, и да запускается
но екзешка занимает до 48 МБ

Не подскажите есть аналог этой проги - но сборка лучше

И вопрос по Xmarin он же mono - можно хоть там собрать екзешку без фраймворка
или я не отделаюсь все равно от него
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
01.01.2015, 19:07
она собирает в одну екзешку, и да запускается
а смысл? будет exe файл на 250мб, который не факт что вообще заработает если сложней hello world
1
Warrior
 Аватар для _exp10der_
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
01.01.2015, 19:07
https://www.youtube.com/user/h... ive/videos
vs + emacs
1
 Аватар для GENDALF_ISTARI
16 / 33 / 19
Регистрация: 20.08.2013
Сообщений: 740
01.01.2015, 23:49  [ТС]
А это SmartAssembly
как то можно отлучить требование фраймворка все в одном
или тоже та самая ерунда требует фраймворк
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.01.2015, 23:49
Помогаю со студенческими работами здесь

Как выполнить статическую линковку библиотек?
Такая ситуация: скомпилировал на ноуте консольное приложение, на уровне хеллоу ворлда, а на персональном компе оно при запуске выдает...

Настроить Builder на статическую линковку
У меня Builder 2007, если попытаться открыть exe файл на другом пк то жалуется на отсутствие vcl100bpl.bpl, те на борландовскую vcl...

Не получается сделать статическую линковку своей программы в MinGW
Написал на с++ программу, скомпилировал и решил дать другу потестить. Хотел слинковать статически при помощи ключа '-static', но...

Собрать и подключить статическую библиотеку
Библиотека должна выводить в консоль локальное и доменное имя компа и пользователя. Не разберусь никак, одна сплошная ошибка #define...

хочу хитрую линковку сделать, как сдалать
noindex - гуглу пофиг вот и встал вопрос , а как тогда ? Спасибо!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru