Внедрение данных "на лету"
От: alexsoff Россия  
Дата: 28.11.14 09:52
Оценка:
Можно ли как-то "на лету" создать Embedded Resource в существующей сборке или заменить уже находящийся там? С помощью кода на C#.
Суть. Пользователь на сайте выбирает некоторые параметры, а по окончанию выдается "исполняемый файл", так вот он должен содержать некоторые данные.
PS
Создать с помощью JS такое не получается, т.к. необходимо управлять некоторыми "системными ресурсами".
Re: Внедрение данных "на лету"
От: hardcase Пират http://nemerle.org
Дата: 28.11.14 11:24
Оценка:
Здравствуйте, alexsoff, Вы писали:

A>Создать с помощью JS такое не получается, т.к. необходимо управлять некоторыми "системными ресурсами".


Декомпилируешь с помощью ildasm.exe свою сборку в текст IL, далее скармливаешь выхлоп вместе с твоим ресурсом компилятору ilasm.exe. Результат можно еще и подписать.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: Внедрение данных "на лету"
От: alexsoff Россия  
Дата: 28.11.14 11:38
Оценка:
Здравствуйте, hardcase, Вы писали:
H>Декомпилируешь с помощью ildasm.exe свою сборку в текст IL, далее скармливаешь выхлоп вместе с твоим ресурсом компилятору ilasm.exe. Результат можно еще и подписать.
Мне тогда будет проще с CodeDomProvider замутить.
Re[3]: Внедрение данных "на лету"
От: Rinbe Россия  
Дата: 28.11.14 12:27
Оценка:
Здравствуйте, alexsoff, Вы писали:

A>Здравствуйте, hardcase, Вы писали:

H>>Декомпилируешь с помощью ildasm.exe свою сборку в текст IL, далее скармливаешь выхлоп вместе с твоим ресурсом компилятору ilasm.exe. Результат можно еще и подписать.
A>Мне тогда будет проще с CodeDomProvider замутить.

Наверное: вот примерчик: Как программно компилировать код с помощью компилятора C#
Re: Внедрение данных "на лету"
От: Shmj Ниоткуда  
Дата: 01.12.14 02:46
Оценка:
Здравствуйте, alexsoff, Вы писали:

A>Суть. Пользователь на сайте выбирает некоторые параметры, а по окончанию выдается "исполняемый файл", так вот он должен содержать некоторые данные.


Во-первых, вам вовсе не обязательно данные хранить в исполняемом файле. Их можно перенести в файл конфигурации, тощо. Пользователю передаете архив или самораспаковывающийся архив. Это даст преимущество -- система не будет задавать вопросов при запуске файла.

Во-вторых, вы можете использовать оригинальные исходники проекта, изменять их в нужном месте и скармливать их MSBuild. Он прекрасно работает через командную строку. Зачем усложнять?
Отредактировано 01.12.2014 2:48 Shmj . Предыдущая версия .
Re[2]: Внедрение данных "на лету"
От: alexsoff Россия  
Дата: 01.12.14 08:04
Оценка:
Здравствуйте, Shmj, Вы писали:

S> Пользователю передаете архив или самораспаковывающийся архив. Это даст преимущество -- система не будет задавать вопросов при запуске файла.

Ну давайте посчитаем количество действий для пользователя в первом и во втором случае:
I)
1) Нажать на ссылку
2) Нажать на скачанный ярлык в браузере
3) Нажать на кнопку разрешения запуска exe в UAC в винде
4) Profit
II)
1) Нажать на ссылку в браузере
2) Нажать на скачанный ярлык в браузере
3) Нажать на кнопку разрешения запуска exe в UAC в винде
4) Выбрать место куда распаковать прогу
5) Нажать extract
7) Запустить прогу
8) Profit

S> скармливать их MSBuild.

Тогда на сервер минимум нужно устанавливать SDK. А это усложнение деплоя приложения.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.