Форум программистов, компьютерный форум, киберфорум
Наши страницы
.NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/40: Рейтинг темы: голосов - 40, средняя оценка - 5.00
landermend
4 / 4 / 0
Регистрация: 31.01.2012
Сообщений: 10
1

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

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

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

Пара вопросов
1) Стоит ли развивать проект дальше?
2) Стоит ли делать проект OpenSource?
3) Стоит ли делать расширение платным?
4) Востребована ли такая возможность? (запуск без NetFramework)
3
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2012, 11:05
Ответы с готовыми решениями:

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

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

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

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

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

46
turbanoff
Эксперт Java
4038 / 3773 / 743
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
05.03.2012, 11:09 2
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от landermend Посмотреть сообщение
Стоит ли развивать проект дальше?
Да
Цитата Сообщение от landermend Посмотреть сообщение
Стоит ли делать проект OpenSource?
Зависит от того какие у вас цели
Цитата Сообщение от landermend Посмотреть сообщение
Стоит ли делать расширение платным?
Стоит попробовать, если вы действительно реализовали то что написано
Цитата Сообщение от landermend Посмотреть сообщение
Востребована ли такая возможность? (запуск без NetFramework)
да

Нужно больше подробностей, ну и пример программы собранной таким способом
3
landermend
4 / 4 / 0
Регистрация: 31.01.2012
Сообщений: 10
05.03.2012, 11:11  [ТС] 3
turbanoff, Спасибо за ответ. После добавления обфускатора в код расширения обязательно выложу. Как бы идею не украли
1
NightmareZ
1403 / 620 / 60
Регистрация: 31.03.2009
Сообщений: 2,010
05.03.2012, 11:12 4
Цитата Сообщение от landermend Посмотреть сообщение
Это расширение позволяет скомпилировать проекты на .Net 2.x - 4.0 так, чтобы их можно было запускать без NetFramework.

Ты врёшь. Забаньте его кто-нибуть.
1
05.03.2012, 11:12
landermend
4 / 4 / 0
Регистрация: 31.01.2012
Сообщений: 10
05.03.2012, 11:15  [ТС] 5
NightmareZ, Обоснуйте, пожалуйста.

Добавлено через 2 минуты
Еще небольшой вопрос: есть ли подобные проекты?
0
NightmareZ
1403 / 620 / 60
Регистрация: 31.03.2009
Сообщений: 2,010
05.03.2012, 11:15 6
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от landermend Посмотреть сообщение
NightmareZ, Обоснуйте, пожалуйста.
Обосновываю: фреймворк - это далеко не только классы, которые можно было бы ипортировать и не париться, это также CLR и прочая инфраструктура.
3
turbanoff
Эксперт Java
4038 / 3773 / 743
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
05.03.2012, 11:17 7
Цитата Сообщение от landermend Посмотреть сообщение
NightmareZ, Обоснуйте, пожалуйста.
Ну первое что пришло в голову - это очень сложно. Нет не так. Это ОООЧЕНЬ сложно.
Скорее всего вы либо что-то недоговариваете, либо взяли чужие наработки, либо что-то напутали
Цитата Сообщение от landermend Посмотреть сообщение
Еще небольшой вопрос: есть ли подобные проекты?
Разве что mono к подобным проектам можно отнести
0
landermend
4 / 4 / 0
Регистрация: 31.01.2012
Сообщений: 10
05.03.2012, 11:27  [ТС] 8
NightmareZ, Я же не говорил, что это тоже импортируется в исполняемый файл. Расширение пока не совершенно. Вы перечитайте, нигде про это не сказано. Хотя, это в планах.

Добавлено через 1 минуту
turbanoff, Я не сказал, что это просто. Около 1 года работы.

Добавлено через 7 минут
Ах да, я же не указал - расширение поддерживает ТОЛЬКО язык C#, для остальных, по-моему нет смысла делать.
0
NightmareZ
1403 / 620 / 60
Регистрация: 31.03.2009
Сообщений: 2,010
05.03.2012, 11:28 9
Цитата Сообщение от landermend Посмотреть сообщение
Ах да, я же не указал - расширение поддерживает ТОЛЬКО язык C#, для остальных, по-моему нет смысла делать.
Почему язык вообще влияет на что-либо, когда тебе по-идее должно приходиться работать исключительно с CIL?
2
CycleFunction
10 / 10 / 1
Регистрация: 25.01.2012
Сообщений: 103
05.03.2012, 11:44 10
Такого бреда я еще не слышал. Framework это большое древо классов. Если верить рефлектору то класс Console использует

C#
1
2
3
4
5
6
7
8
using Microsoft.Win32;
using Microsoft.Win32.SafeHandles;
using System.IO;
using System.Runtime.ConstrainedExecution;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using System.Text;
using System.Threading;
Так что если бы-вы скомпилировали простенький проигрыватель, бинарник весил бы примерно как вся mscorlib.dll, несчитая того, что mscorlib.dll сама по себе использует огромное колличество библеотек так как написанна практически полностью на WinAPI.
2
Памирыч
Почетный модератор
21108 / 8836 / 1080
Регистрация: 11.04.2010
Сообщений: 11,012
05.03.2012, 11:54 11
landermend, исходник выкладывать не нужно (если он есть конечно)
Но неплохо бы представить доказательства и демонстрацию работы Вашего расширения, потому как в то, о чем вы говорите, даже с трудом, и то не верится
1
landermend
4 / 4 / 0
Регистрация: 31.01.2012
Сообщений: 10
05.03.2012, 13:43  [ТС] 12
NightmareZ, Просто расширение будет доступно только если проект на C#, влом для VB делать

Добавлено через 1 минуту
Памирыч, Пока - не знаю, как бы идею не украли.

Добавлено через 49 секунд
CycleFunction, Использует, но не все из namespace'ов. Просто выборка, а не namespace целиком

Вот вопрос всем: смысл мне врать?
0
GOID
83 / 83 / 14
Регистрация: 15.02.2011
Сообщений: 252
05.03.2012, 13:43 13
Идея запуска без предустановленного FrameWork'a не новая. Думаю многие себе задавали такой вопрос.
Насчет реальности выполнения такой операции: статья с известного всем сайта, смотрим в таблице VMWare ThinApp.
0
landermend
4 / 4 / 0
Регистрация: 31.01.2012
Сообщений: 10
05.03.2012, 13:51  [ТС] 14
GOID, Спасибо, вы подсказали ценовой диапазон))))))
Кстати, защита у это программы - так себе. Уже кряков понаделывали.
0
CycleFunction
10 / 10 / 1
Регистрация: 25.01.2012
Сообщений: 103
05.03.2012, 13:56 15
О чем я собственно и говорил. И - то, полной гарантии нет.
0
GOID
05.03.2012, 13:57
  #16

Не по теме:

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

0
CycleFunction
10 / 10 / 1
Регистрация: 25.01.2012
Сообщений: 103
05.03.2012, 14:09 17
Цитата Сообщение от GOID Посмотреть сообщение
не противоречит ли это основным целям фреймворка
Естественно противоречит, да толку все-равно мало, кроссплатформенней прилажение не станет, так как все равно использует WinAPI.

Вот если бы такой способ вытаскивал еще и функции с WinAPI, было бы куда круче, но это из ряда научной фантастики.
0
m0nax
1223 / 925 / 113
Регистрация: 12.01.2010
Сообщений: 1,922
Завершенные тесты: 3
05.03.2012, 15:01 18
В чем проблема выложить "hello world" который запустится без дотнета?
код Console.WriteLine никак не поможет в краже идеи

GOID, вы пользовались этим VMWare ThinApp ? получилось? нет. зачем тогда пускать сплетни?
0
Eugene22
_
2353 / 1226 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
05.03.2012, 15:27 19
Нельзя украсть то, что не существует. Пока вся эта идея - не более чем голословное утверждение.
1
GOID
83 / 83 / 14
Регистрация: 15.02.2011
Сообщений: 252
05.03.2012, 15:36 20
Цитата Сообщение от m0nax Посмотреть сообщение
GOID, вы пользовались этим VMWare ThinApp ? получилось? нет. зачем тогда пускать сплетни?
Вы правы, не пользовался.

В чем проблема выложить "hello world" который запустится без дотнета?
код Console.WriteLine никак не поможет в краже идеи
Поддерживаю.
0
05.03.2012, 15:36
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2012, 15:36

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru