Форум программистов, компьютерный форум, киберфорум
Visual Studio, VS Code
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/55: Рейтинг темы: голосов - 55, средняя оценка - 4.55
4 / 4 / 0
Регистрация: 31.01.2012
Сообщений: 10

Я написал расширение VS10, позволяющее скомпилировать проект так, чтобы его можно было запустить без NetFramework

05.03.2012, 11:05. Показов 12398. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Принцип действия, если кратко: импортирует в .exe те классы, которые используются. Компиляция дольше процентов на 10, исполняемый файл весит не больше 10-15% от обычного компилирования. Это расширение позволяет скомпилировать проекты на .Net 2.x - 4.0 так, чтобы их можно было запускать без NetFramework. Запускается ВООБЩЕ без NetFramework. Протестировано на WinXP, Vista, 7. Не глючит, даже большие проекты нормально работают (тестировал до 300к строк). Ухудшение производительности не заметил. Просьба не просить исходник, пока не решил, что с ним делать.

Пара вопросов
1) Стоит ли развивать проект дальше?
2) Стоит ли делать проект OpenSource?
3) Стоит ли делать расширение платным?
4) Востребована ли такая возможность? (запуск без NetFramework)
3
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2012, 11:05
Ответы с готовыми решениями:

Можно ли упаковать в exe'шник используемые в проекте библиотеки так, чтобы можно было запустить программу на машине без .NET
Я погуглил, но нашел только очень дорогие программы. А хотелось бы узнать насчет предложенного мной способа)

Прошу исправить мой модуль, написанный в АВС, так, чтобы его можно было скомпилировать в Turbo Pascal
Прошу исправить мой модуль, написанный в АВС, так, чтобы его можно было скомпилировать в Turbo Pascal. Пожалуйста var...

Как добавить Android-проект в Eclipse с Android SDK, чтобы после его можно было запустить на виртуальной машине?
Вот у меня с интернета скачан готовый андрой-проект, но я не знаю как его добавить в остальные проекты чтобы запустить на виртуальной...

46
4 / 4 / 0
Регистрация: 31.01.2012
Сообщений: 10
05.03.2012, 19:53  [ТС]
Студворк — интернет-сервис помощи студентам
Не хочу никого обидеть, но я просто попросил ответить на вопросы. Вы можете думать что угодно.
0
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 6
06.03.2012, 09:44
Наверно при установке программки она качает и ставит .NET frame work. фокусник ...
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
06.03.2012, 10:02
Лучший ответ Сообщение было отмечено как решение

Решение

Я готов поверить, что можно создать приложение которое будет отвязано от framework, но вот это настораживает
Цитата Сообщение от landermend Посмотреть сообщение
Компиляция дольше процентов на 10, исполняемый файл весит не больше 10-15% от обычного компилирования.
Пишу с использованием devex. Приложение весит 1.5 МБ, но для того чтобы оно заработало у клиента, приходится тащить используемые библиотеки, и после этого оно начинает весить 45 МБ.

Не по теме:

На ум приходит анекдот про нового русского:
"- Штуку вкладываю, через месяц срубаю четыре. Вот на эти 3% и живу"

3
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
06.03.2012, 11:48
Цитата Сообщение от nio Посмотреть сообщение
Пишу с использованием devex
А что такое devex, и причем он здесь?
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
06.03.2012, 12:12
Цитата Сообщение от turbanoff Посмотреть сообщение
А что такое devex
сторонняя библиотека компонентов (вместо виндовских)
Цитата Сообщение от turbanoff Посмотреть сообщение
и причем он здесь?
для примера

Добавлено через 3 минуты
другой пример: одна System.Windows.Forms.dll весит 5 МБ
0
4 / 4 / 0
Регистрация: 31.01.2012
Сообщений: 10
06.03.2012, 17:16  [ТС]
AaNnDdRrEeYy, Очень разумное предположение, вы случаем не экстрасенс? Не? Если нету инета\медленный инет\ брандмауэр\ антивирь? А может, оно по-тихому качает и инсталлит семерку, ведь в ней предустановленный .NetFramework, если под нее приложение делалось? Не надо глупых предположений.

Вот всего 1 человек ответил в тему
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
07.03.2012, 20:09
В принципе, можно сделать. Например, reflector тоже определяет же все классы и прочее. Их собирать в отдельную файл, не проблема.

Но по сути, framework - это обще используемая библиотека для всех програм. Ещё эти framework'ы уже включается в состав инсталляционного пакета Windows.

Если несколько програм компилировать с этим методом, то получается дублирование одни и те же функции в составе разных програм.

Незнаю, можеть быть нужна такая возможность, но для меня был бы нововведение компиляция проектов на unmanaged code, пусть даже использует framework.
1
Заблокирован
07.03.2012, 22:48
landermend, пока ваша защита смотрится как защита от "неуловимого ковбоя Джо".

Факты интересуют.

Добавлено через 31 минуту
Например:
Цитата Сообщение от m0nax Посмотреть сообщение
В чем проблема выложить "hello world" который запустится без дотнета?
код Console.WriteLine никак не поможет в краже идеи
Возможно, это все решилось примерно таким способом:
-
C#
1
2
using System.Runtime.CompilerServices;
[assembly: SuppressIldasmAttribute()]...
-Далее ildasm не открыл.
-Поставил while(true){} после ret - Reflector или че вылетело.
0
4 / 4 / 0
Регистрация: 31.01.2012
Сообщений: 10
08.03.2012, 10:19  [ТС]
coderxx, Спасибо, надо будет подумать о компиляции под предыдущие фреймворки

Добавлено через 2 минуты
Dzhej-Dzhej, Есть декомпиляторы покруче) Рекламировать не буду. OllyDbg посмотреть куда и когда лезет и делов-то. Но надо будет обфускатор встроить, полезно было бы))
0
Заблокирован
09.03.2012, 17:14
landermend, раз уж вы так плотно занимаетесь обфускаторами, спрошу, тоже интересует эта тема.
Можно ли встроить в прогу код типа:
Assembler
1
2
3
4
label1: pushfd
    pop eax
    and eax, 100h
    jnz label1
Не важно каким способом, гипотетически. Просто интересует балуются ли декомпиляторы трассировкой.
0
 Аватар для sau
2875 / 2080 / 386
Регистрация: 22.07.2011
Сообщений: 7,840
10.03.2012, 19:49
http://msdn.microsoft.com/ru-r... S.90).aspx
- думаю, вполне реально написать свой аналог NGen.exe, переводящий IL инструкции в машинный код, а вот то, что
исполняемый файл весит не больше 10-15% от обычного компилирования, то в это как то не верится - если прога юзает функции фреймворка, но работает без него, то в итоге исполняемый файл будет содержать их копию и копию всех зависимых библиотек, это хорошо если приложение консольное а-ля HelloWrod, тогда максимум зацепим код по вызову апишного аналога, а если WPF? - это нужно всю инфраструктуру цеплять, и тут в 10% наврядли уложишься.

о надо будет обфускатор встроить, полезно было бы)
- если твоя прога в итоге превращается в нативное приложение, то какой на фиг обфускатор на машинные коды? тут обычный упаковщик PE формата нужен, и, кстати, о том, что бы выложить пример, по итоговому исполняемому файлу никто код твоего компилятора/расширения не украдет.

расширение поддерживает ТОЛЬКО язык C#
- еще один аргумент в пользу того что автор темы не догоняет...
1
Заблокирован
11.03.2012, 01:27
sau, там прикол в том, что это тоже разводняк.

Ну неужели мелкомягкие не могли бы сделать апгрейд, чтоб их проги без фреймворков компилились, еслиб было это возможно?
0
4 / 4 / 0
Регистрация: 31.01.2012
Сообщений: 10
11.03.2012, 11:30  [ТС]
Dzhej-Dzhej, а оно им надо? файл больше будет и компиляция дольше.
0
 Аватар для SharpDeveloper
141 / 138 / 22
Регистрация: 16.02.2012
Сообщений: 453
12.03.2012, 13:08
Напоминает истории про написание архиватора, сжимающего любые данные
Пока нет никаких доказательств, заявленное можно считать утопией.

Если даже скриншота не предоставляется, не говоря о работающем примере, о чем тут вообще можно говорить?
1
274 / 64 / 4
Регистрация: 18.04.2011
Сообщений: 1,362
Записей в блоге: 1
12.03.2012, 13:23
Как сильно не хотелось, но в это как то смутно верится. Прошу в примеры в студию, самые простые.
0
4 / 4 / 0
Регистрация: 08.03.2011
Сообщений: 42
12.03.2012, 23:03
Лучше не скриншоты, а запись рабочего процесса.
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
13.03.2012, 15:36
Ты не прав. Для компилятора и правда Фреймворк это библиотека. Но для компьютера - это виртуальная машина типа Джавы. И программа написанная не .NET не запустится если фреймворк не установлен на машине.
0
 Аватар для Sp1tfire
76 / 66 / 1
Регистрация: 10.12.2011
Сообщений: 175
17.03.2012, 17:01
как по мне, так единственный способ такое сделать - это перевод с# кода в с++(например) и компиляция этого кода в натив.
по такому принципу unity3d 3.5 поимел flash, где c# код переводится в ActionScript.
и сдается мне, что так же сделаны monotouch и monodroid
0
17.03.2012, 17:34

Не по теме:

Цитата Сообщение от Sp1tfire Посмотреть сообщение
monotouch и monodroid
Mono теперь платная чо-ле?

0
 Аватар для Sp1tfire
76 / 66 / 1
Регистрация: 10.12.2011
Сообщений: 175
17.03.2012, 19:12
Цитата Сообщение от CycleFunction Посмотреть сообщение

Не по теме:


Mono теперь платная чо-ле?

Не по теме:

нет,
только monotouch и monodroid платные(но можно их использовать бесплатно с ограничениями:

  • Emulator only
  • No time limit
  • Give Mono for Android a try!
)

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.03.2012, 19:12

Можно ли скомпилировать проект так, чтобы он вместе с собой открывал файл
Можно ли скомпилировать проект так, чтобы он вместе с собой открывал файл. Файл и проект - одно целое.

Переделать код, чтобы можно было запустить его в MSVS
Программа написана под Linux. Подскажите что нужно поменять чтобы запустить ее в обычном microsoft visual studio? #include...

Нужно преобразовать предел так, чтобы его можно было посчитать по Лопиталю
Добрый день, мне нужно преобразовать предел \lim_{x\rightarrow 0}{ctgx}^{sinx} так, чтобы его можно было посчитать по Лопиталю, скажите...

Необходимо собрать проект со всеми библиотеками в одну папку, чтобы можно было его передавать на другие ПК.
Python 3.4, GUI wxPython. Необходимо собрать проект со всеми библиотеками в одну папку, чтобы можно было его передавать на другие ПК. Мне...

Как создать файл DLL так, чтобы его можно было подключить к VBA Excel?
Пытаясь научиться подключать к VBA хотя бы самую тривиальную функцию на C++. Для примера написал на C++ простую функцию Kvadrat и...


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

Или воспользуйтесь поиском по форуму:
40
Закрытая тема Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru