Хоспади, мужик, я 3 недели страдал и так не запустил его. Где ты раньше был? :D Наконец то уберу костыли и закончу свой проект. Спасибо тебе огромное!!!)))
@dy0mber8473 жыл бұрын
Как же я рад твоей активности в плане выхода роликов, спасибо большое, жду еще!
@user-tl6gq2tj7c Жыл бұрын
Спасибо большое за понятное объяснение)) Покажу это видео своему коллеге, он не верил что можно все dll запихнуть в один экзешник))
@zmeyskiyyy2 жыл бұрын
Мужик, очень хороший контент, и шутки крутые, продолжай дальше снимать уроки по C#, ну а я покачто подпишусь.
@SHILY-PROJECT3 жыл бұрын
Максимально полезная штука! Благодарю, Хачатур! Даже и не знал, что есть такие способы... Слыхал только про "ILRepack", но толком не юзал:)
@XpucT3 жыл бұрын
ILRepack - это как раз продолжение проект ILMerge =)
@SHILY-PROJECT3 жыл бұрын
@@XpucT О, спасибо, буду знать теперь:)
@vladislavkresov29103 жыл бұрын
Каждый день что-то новое узнаю. Спасибо!
@BadDa3mon3 жыл бұрын
Ты прям чувствуешь, что мне нужно. Давно хотел узнать об этом, спасибо большое
@Eekzolt3 жыл бұрын
Сам на C# давно уже не пишу, но ваши видео гипнотически интересные) Спасибо!
@user-xy9hf5tf3e3 жыл бұрын
Где ты был раньше когда я для проекта делал подпроект и выпиливал одинаковые куски кода внутрь чтобы не было отдельной dll )))
@gayratravshanov84092 жыл бұрын
Вообще отлично. Спасибо !!!
@user-tl6gq2tj7c3 ай бұрын
Первый раз пользовался вторым способом т.к. была всего 1 длл А сейчас возникла ситуация с WPF проектом в который установлена хренова гора зависимостей и я эти все dll вписал в батник, запустил его... ноо он выдал "Duplicate type and allowDup Option", попробовал использовать /allowDup параметр, но он не помог, в итоге сдался и перешёл на костура фоди Экзешник весит 1 мб, считаю что немного, так что способ рабочий) Спасибо ещё раз) Помню как смотрел этот видос год назад, вот снова понадобился освежить память) Жаль ещё один лайк поставить нельзя)
@soohoy8256 Жыл бұрын
Математика от Хачатура 10:56 😂
@ererka39293 жыл бұрын
Ставлю лайк до просмотра! Знаю, что будет круто и по делу. Well done commander )))
@alexandertovstik75403 жыл бұрын
Где же ты был раньше с этим способом. Я использовал Костуру и думал та, почему мой exe так сильно весит. Очень полезное видео.
@wwlinuxoff2 ай бұрын
Zdarova bro a ya ustanovil packege Guna 2 UI i .dll dayut posle Ilmerge.exe ne otrivaetsya prilojeniya otvet pojolyusta mne kak mojno eto sdelat?
@LugAdler3 жыл бұрын
Есть еще ILRepack более "продвинутая" версия ILMerge с поддержкой дополнительных функций, если кому-то нужны...
@kinargard39552 жыл бұрын
Спасибо большое)
@radelnigma76623 жыл бұрын
Здравствуйте. Спасибо за видео, как раз понадобилось склеить. Может подскажите почему не удается ни установить, ни удалить nuget пакеты через диспетчер пакетов пишет вот это: Ошибка. (Исключение из HRESULT: 0x80020009 (DISP_E_EXCEPTION)) А через консоль диспетчера пакетов получается. Ни где не могу найти ответа.
@orakul_azovstal3 жыл бұрын
При первых моих поисках информации и решений по этой теме, я наткнулся на противников впихивания всё в один exe) советы были такого плана, просто собери свой инсталлятор) мать вашу за ногу зачем мне инсталлятор для проги с пару строчками кода) Немножко не хватало таких видео как у тебя, и даже в большей мере множко) Короче говоря спасибо, за сэкономленные нервы других кто ещё в поиске решений. Но с другой стороны самому даже интересней, хотя времени всегда мало.
@XpucT3 жыл бұрын
Анекдот: Американский пользователь задаёт вопрос на форуме, ему отвечают. Израильский пользователь задаёт вопрос на форуме, ему задают встречный вопрос. Русский пользователь задаёт вопрос на форуме, ему долго объясняют, какой он мудак.
@orakul_azovstal3 жыл бұрын
@@XpucT И ещё советуют написать свой язык, если что-то не устраевает)
@risoutsoring3 жыл бұрын
У тебя супер уроки!
@roflyan75492 жыл бұрын
Больше понравился способ с Ilmerge, но он не работает с Wpf видимо, либо я что-то не так делаю. Costura при этом нормально отрабатывает с wpf. Результаты такие вышли: Исходный файлик 9кб + библиотека 13кб В Winforms ilmerge дает итоговый 16кб В wpf castura дает 40кб, что на самом деле не так и плохо, правда не знаю насколько все будет разрастаться с большими проектами.
@XpucT2 жыл бұрын
Не уверен, но вероятно, проблема может быть в том, что на разных Framework или Core собирались проекты exe и dll.
@t1ran1533 жыл бұрын
Спасибо большое
@vosilam79373 жыл бұрын
Очень полезно узнал, спасибо!
@GhostRescue3 жыл бұрын
Большое спасибо, то что нужно
@hamilt Жыл бұрын
Привет, Хачатур. Недавно сделал приложение на WF (.NET 6.0 не Framework), и хочу все запихнуть в один исполняемый файл (в папке bin есть dll-ка с таким же названием как exe). Пробовал сделать 1 способом - ничего не получилось (возможно тут надо как-то по другому делать), когда ставил ilmerge даже папка не появилась. Может ты знаешь в чем моя ошибка?
@hamilt Жыл бұрын
P.S только вес у файла огромный, без понятия как это исправить
@XpucT Жыл бұрын
Привет 🖐 Вероятно, второй файл не является файлом .NET
@MysteryMarshak3 жыл бұрын
Привет, Хачатур. Скажи пожалуйста, как создать задачу в планировщике заданий без библиотеки Microsoft.Win32.TaskScheduler (она весит ~350кб, что много) upd: сделал через cmd
@XpucT3 жыл бұрын
Красавчик ☝
@user-hr9ot3mx1o3 жыл бұрын
Спасибо за полезные уроки! Подскажите, есть ли способы менять иконку приложения в панели задач во время его работы? Сделать, например, иконку в виде часов с движущимися стрелками. Или рисовать поверх этой иконки, например, циферку о количестве уведомлений.
@XpucT3 жыл бұрын
Технически это возможно, но нужно постоянно перерисовывать explorer. А это идея плохая.
@chechensoft_ru3 жыл бұрын
Почему мне нравятся такие уроки?!
@messieurs12 Жыл бұрын
Не могу найти папки
@user-yp5bm4vz5l3 жыл бұрын
Где можно добавить самостоятельно отображение пункта(может есть горячие клавиши ?) "открыть окно команд" ?
@XpucT3 жыл бұрын
Win 10 Tweaker ➜ Системная информация ➜ Персональные рекомендации
@jokeer31483 жыл бұрын
К илмерджу можно bat создать, который будет автоматически все файлы внутри папки пихать через илмердж в ехе
@vadymkon Жыл бұрын
А как батник может выглядеть, если название проектов и длл могут отличаться
@sscovideo2 жыл бұрын
Привет Христ! как можно использовать "packages costura" для всех проект?
@XpucT2 жыл бұрын
Привет 🖐 Если нужно, чтобы он был подключён к проекту, то только так, как на видео. Это всё-таки не отдельная программа, которую можно было бы просто бросать в любую папку.
@user-yp5bm4vz5l3 жыл бұрын
Друзья, как сделать установщик своей программы, разработанной на .NET C# ? Может есть уже видео ?
@XpucT3 жыл бұрын
Видео работы с ресурсами уже есть на канале. Но обычно люди берут что-то готовое. Готовые инсталляторы в сети. Я рекомендую костылять свой ;)
@loger_13283 жыл бұрын
Как всегда топово!))
@eswcpoker65623 жыл бұрын
Я бы посмотрел бы как бы в C# взаимодействовать со сторонними процессами , там надпись какую нибудь считать . За фишку с exe спасибо . Лайк
@kalomka3 жыл бұрын
Как быть с локализованными формами, где есть 2 или больше языка, для них создается 2 одинаковых файла: имяприложения.resources.dll в папках ru и en, как их внедрить через ilmerge, а то внедряется только английский язык, на русский не меняется
@XpucT3 жыл бұрын
Если русский не применяется, значит что-то не так с кодом. Строго говоря не так то, что язык берётся из библиотек, а не классов или словарей Dictionary.
@kalomka3 жыл бұрын
@@XpucT если просто запускать приложение, то всё нормально, и язык в библиотеках это если на форме включить Localizable*, и поставить чуть выше язык на русский и редактировать форму на языке, оно создаёт resx файл который потом в эти папки компилится, но дело в том что файлы идентичные. И кстати я не знаю как создавать язык через dictionary, это надо создавать класс с миллионами строк кода или как?
@XpucT3 жыл бұрын
Если дождётесь, то сниму про это видео =)
@kalomka3 жыл бұрын
@@XpucT хорошо, буду ждать сколько нужно, спасибо
@leshii-2000 Жыл бұрын
подскажи что нужна для вшить у прогу ключ? что нужно для этого?
@nullabIe3 жыл бұрын
Отличное видео! А будет ли что-то наподобие практики создания приложений небольших, чтобы многое объединить?
@user-si6ww3gi2l2 жыл бұрын
в cmd можно табы юзать для дополнения имен файлов
@BlendLogDev3 жыл бұрын
А почему бы просто не добавить эту dll в ресурсы и потом вытаскивать через WriteAllBytes рядом с exe, если её не существует?
@Andymit3 жыл бұрын
ну тебе с этими способами не придется писать дополнительный код, плюс к этому, как я понял, dll не распаковывается в директории рядом с исполняемым файлом, так что нет никаких лишних движений. а если у тебя таких библиотек не 1, а больше? каждую придется из ресурсов доставать, а зачем, когда есть способы удобнее)
@LugAdler3 жыл бұрын
Это называется - костыли...
@acer6788 Жыл бұрын
Хачатур здравствуй, кажись второй способ больше не актуален, папка не создается в корневом каталоге проекта
@chechensoft_ru3 жыл бұрын
Спасибо!
@hotbabybox4 ай бұрын
всё это лишь для собственных ДЛЛ, сторонние не работают так как те кто делает ДЛЛ тоже не дураки, защита работает чётко
@lores13373 жыл бұрын
Не собираюсь ничего писать, но всё равно интересно!
@PravdaGe3 жыл бұрын
Доброго времени суток ! XpucT и Зрители , Шикарный (07:39 Второй способ) Понятно что Иконку ,Описание и Манифест Можно исправить через : (Restorator ) Или (Resource Hacker) Вопрос не вывозит ли это дополнительных детектов у паранойяльных ANTI V.irus ) PS ; Спасибо за видео не знал этот способ.
@XpucT3 жыл бұрын
Нет, антивирусы не будут ругаться, т.к. нет никакой обфускации и подмены загрузчика.
@marsm66192 жыл бұрын
Привет. Забыл как подключить С.М() Как усатый помощник? Привет ему. ВсЁ. Всех Благ. пока пока
@XpucT2 жыл бұрын
Привет В первом уроке показывал как библиотеку подключать =) Просто добавляешь ссылку в Ссылках в Обозревателе на свой dll. Но лучше видос пересмотри =)
@marsm66192 жыл бұрын
Норм, уже пересмотрел. Хотел пошутить с C.M();
@3x__2 жыл бұрын
👍
@C6OI2 жыл бұрын
Привет, не могу склеить свой exe с dll Почему то раньше в папке bin лежал только один exe и два json файла, но сейчас при сборке проекта в папке оказываются те-же два json файла, exe и dll Без dll программа просто не запускается, даже не выдаёт никаких ошибок Пробовал костуру, ilmerge, ilrepack, enigmavm, ничего не получается Костура не склеивает, ilmerge и ilrepack выдают такую же ошибку как у комментаторов снизу, enigmavm вроде склеивает, но программа не запускается и выдаёт ошибку "необходимо установить .net desktop runtime 6.0.6", но даже после установки вылезает эта же ошибка Есть ли еще какие-то способы склеивания?
@XpucT2 жыл бұрын
Привет 🖐 Откуда json? Это Твои файлы?
@C6OI2 жыл бұрын
@@XpucT Нет, файлы `название_проекта.deps.json` и `название_проекта.runtimeconfig.json` Они создаются сами при сборке
@XpucT2 жыл бұрын
@@C6OI Что-то непонятное Ты делаешь, если с exe появляются json. Эти это Твои json, то их нужно класть в ресурсы, чтобы не было зависимостей. Нужно разобраться, что они делают. Но их точно не должно лежать рядом.
@C6OI2 жыл бұрын
@@XpucT Отправил два сообщения со ссылками на скриншоты с имгура, но видимо их сожрала автомодерация ютуба
@progfa69343 жыл бұрын
Что за тема на VS?
@XpucT3 жыл бұрын
Привет 🖐 Это не просто тема, это полностью авторская переработка всего интерфейса Visual Studio, над которой Хачатур работал 3 месяца. Тут не просто красиво, а полезно для глаз, подробнее об этом Хачатур рассказывал в видео для спонсоров: kzbin.infocommunity Тема, доп.материалы и эксклюзив становится доступным сразу, как становишься спонсором канала.
@progfa69343 жыл бұрын
@@XpucT Спасиб большое!
@biohazardmars3 жыл бұрын
ХрисТ пожалуйста сделайте свой телеграм группу канал в этом видео вы мне очен помогли я помню как установил пакеты для работы с реестра winregistry и там появлялся 10 .dll .json файлов
@Oleksandr-Nikolaev3 жыл бұрын
Хачатур в ударе.
@serpotapov3 жыл бұрын
Мощь!
@semen0832 жыл бұрын
Но ведь есть стандартная публикация приложения, где можно выбрать пункт склеить в один файл.
@user-ri9fr3ln3p Жыл бұрын
Это где?
@semen083 Жыл бұрын
@@user-ri9fr3ln3p SingleFile publishing
@alexdrake9133 жыл бұрын
Полезный видос :D У меня вопрос: Проги на c# легко декомпилировать, возможно как-то защитить exe от этого?
@serpotapov3 жыл бұрын
Привет 🖐 Ответ Хачатура ➜ kzbin.info/www/bejne/bZe1o5dmoc6nhaM&lc=UgwggBxoB3d2DJHNj0J4AaABAg
@alexdrake9133 жыл бұрын
@@serpotapov в этом видео нету ответа на мой вопрос
@XpucT3 жыл бұрын
Нажми на ссылку и попадёшь на видео. Останови видео и прокрути вниз в комменты. Самый первый вопрос и Мой ответ - это и есть прямая ссылка, данная Сергеем выше.
@alexdrake9133 жыл бұрын
@@XpucT Спасибо огромное.
@eddypartey10753 жыл бұрын
Оба варианта подходят для WPF?
@XpucT3 жыл бұрын
Совершенно верно. На WPF и первый и второй идентичны, что на Windows Forms.
@VERTinBY3 жыл бұрын
@@XpucT было бы не лишним добавить пару слов про встроенную возможность VS , она ведь из коробки умеет паковать в один ехе , правой кнопкой мыши по проекту .. опубликовать .. автономно.. (один раз мастер публикации настроил и все ,дальше одним кликом пакует).
@dmimal84012 жыл бұрын
9:20 у меня нет "открыть окно команд"
@XpucT2 жыл бұрын
Win 10 Tweaker ➜ Системная информация ➜ Персональные рекомендации Там будет предложение вернуть этот пункт.
@dmimal84012 жыл бұрын
@@XpucT что-то не могу найти этот пункт
@XpucT2 жыл бұрын
@@dmimal8401 i.imgur.com/0pFbk9R.png
@dmimal84012 жыл бұрын
@@XpucT An exception occurred during merging: ILMerge.Merge: /target not specified, but output file, 'trash.exe', has a different extension than the primary assembly, 'Exander'. в ILMerging.ILMerge.Merge() в ILMerging.ILMerge.Main(String[] args) мм, не работает. или я что-то не так делаю?
@XpucT2 жыл бұрын
@@dmimal8401 судя по ошибке Ты пытаешься склеить не exe с чем-то не поддерживающимся.
@dmitrydk3573 жыл бұрын
Привет, где можно скачать фон рабочего стола как у тебя?
@serpotapov3 жыл бұрын
Привет 🖐 Держи ➜ i.imgur.com/gaRA71U.jpg
@dmitrydk3573 жыл бұрын
@@serpotapov Спасибо
@user_PsevdonimyEtoPolnyjOtstoj2 жыл бұрын
Зачем склеивать exe и dll?
@XpucT2 жыл бұрын
Довольно у многих есть интерес не держать 10 файлов, а всё иметь в одном исполняемом файле.
@user_PsevdonimyEtoPolnyjOtstoj2 жыл бұрын
@@XpucT можно всё держать в одном файле.
@XpucT2 жыл бұрын
@@user_PsevdonimyEtoPolnyjOtstoj если речь о ресурсах, то да, то не со всеми dll такое канает.
@Username-lx3ud3 жыл бұрын
А я чтобы не заморачиваться с командной строкой набросал себе GUI😁
@illson46663 жыл бұрын
Как защитить свой проект от мамкиных реверсеров?
@gerodstudio3 жыл бұрын
Обфускация кода, но проект всë равно вскроют, хочешь ты этого или нет. Если ты хочешь коммерческий проект, то делай программу на с++ на клиентской части, а важный функционал (активация допустим), то сделать на сервере и через API работать с серверной частью в клиенте
@XpucT3 жыл бұрын
GerodStudio Developers Win 10 Tweaker уже год ебутся и не могут взломать, ибо помимо готовых инструментов нужен мозг и понимание того, как "запечатывается" проект. И да, Вы всё верно поняли, именно ебутся. И да, им это надо. И да, целая гильдия уже тех, у кого подгорает с того, что Хачатур разрушил стереотип того, что на C# можно собрать проект, который при даже нанятых хакерах не вскроешь, ибо знания нужны такие, за которую получают зарплату человек 100 в мире, а не школохакерские. На тех же С++ порой взломать проще, ибо те решения, которые даются, обходятся легко. Говорит Вам это человек, чья пользовательская база превышает 2 000 000 человек. Поэтому важно не язык искать защищённый, а методы. Об этом чуть ниже. Вставляю самоцитату: Чтобы советовать что-то, Я должен рекомендовать то, что использую сам. А если скажу, что использую сам, и как Я это использую, то грош цена Моей защите. У каждого она должна быть уникальной. Поэтому предлагаю начать гуглить обфускаторы C#. Чтобы проверить надёжность обфускации, нужно скачать de4dot и dnSpy. de4dot чистит код от запутанности (обфускации). dnSpy позволяет открывать exe как проект и даже собирать (экспортировать) обратно в файлы проекта. Пока будешь гуглить, не раз встретишь то, что на C# не удастся скрыть код. Это не так. Потому что 1) можно полностью отказаться от static методов, 2) шифровать строки внутри самой программы, 3) держать часть кода в отдельной dll, вшитой в программу, 3) держать часть кода в зашифрованном виде на сервере и выполнять этот код на лету (компиляция и выполнение удалённого кода). Подобные темы Я не рассматривал на канале по понятным (надеюсь) причинам. Процесс защиты кода - это не просто обфускация специальными программами - это также палки в колёса хакерам. Важнее заставить хакера заебаться. Чтобы он пожалел вообще, что полез ломать =) В каждой новой версии Win 10 Tweaker есть подводные камни для хакеров. Таким образом на их публичных высказываниях Я делаю выводы и улучшаю защиту. 15.2 и 15.3 beta пока никому не удалось взломать и вряд ли кому-то захочется, потому что Я придумал кое-что ещё. То есть на 1 шаг впереди. Таким образом мы потихоньку на опыте Win 10 Tweaker видим, что если автор не бросает идею, то есть ещё пути для развития. Многие просто бросают, а Мне любопытно доказать обратное, что на C# можно сделать что хочешь. Если уж совсем по-взрослому, то в программу нужно закладывать библиотеки (dll) написанные на С++ и других языках, чтобы у хакер охуел от того, что ему предстоит ломать. Чтобы каждый его шаг приводил только к новому вызову. Поэтому, защита Твоего проекта может быть только комплексной. Если нужна защита от школохакеров, то достаточно простого обфускатора. Когда Я ничего не применял в программе, тут чуть ли ни каждый второй отмечался в комментариях, типа: а почему catch не обрабатываешь, я взломал твой код, я молодец, знаю что такое dnSpy и всё в таком духе. Поэтому также готовься, что буду появляться выскочки, которые таким образом себя пытаются похвалить. Однако, сами, конечно, они ничего не стоят. И вот уже год все умолкли и лишь спрашивают у Меня, как Я так умудрился и всё в таком духе. Особый бугурт у людей вызывает то, что Я проверяю целостность программы и размер файла во время запуска. Ведь мы же не можем знать, сколько точно в байтах будет весить программа, особенно после обфускации.... В общем, ходов много. И чем больше заложишь в софт, тем надёжнее. Другой вопрос: а нужно ли это? Мне лично нужно с целью узнать степень надёжности и, возможно, сделать свой платный автоматизированный инструмент для таких, как Ты. Кликнул и защитил. Но пока Я, как и многие другие, далеки от совершенства. Но это лишь вызов для Меня =) И должен быть для Тебя 👍
@XpucT3 жыл бұрын
Человек, кстати, спросил не прообфускацию и не с целью спрятать код. На C# - это бесполезно. А вот сделать закрыть от реверса - можно. Я вот поставил задачу и выполнил. Заодно хакеров потроллил и полтора года за нос водил =)
@Kadianka2 жыл бұрын
Не выходит, может кто сможет подсказать почему? An exception occurred during merging: ILMerge.Merge: Could not load assembly from the location 'C:\Users\Lissa\Desktop\ghjtrn\bin\we.exe'. Skipping and processing rest of arguments. в ILMerging.ILMerge.Merge() в ILMerging.ILMerge.Main(String[] args)
@XpucT2 жыл бұрын
В ошибке ответ. Файла нет, чтобы склеивать. Сначала соберите.