Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Научите раздавать приложения, созданные в VB 2005 Добавлено: 14.06.13 20:53  

Автор вопроса:  Георгич
Впервые осваиваю VB .NET (есть опыт с VB 5).

Выполнил upgrade программы из VB5 в VB 2005 Express. Разобрался со всеми возникшими ошибками, и даже простые предупреждения все снял.

Дальше вопрос пересадить сделанное приложение на ПК пользователям.

1 попытка.
Хочу, что Framework передавался в составе сборки дистрибутива.

В свойствах проекта ставлю
publish -> prerequisites -> download prerequisites from the same location as my application
"брать пререквизиты оттуда же, откуда само мое приложение".

Ставлю галки а окнах .NET Framework 2.0 и Windows Installer 3.1

Запуcкаю publish
Получаю сообщения об ошибках:
Error 1 Cannot publish because a project failed to build.
Error 2 The install location for prerequisites has not been set to 'component vendor's web site' and the file ' DotNetFX\instmsia.exe' in item '.NET Framework 2.0' can not be located on disk. See Help for more information.
Error 3 The install location for prerequisites has not been set to 'component vendor's web site' and the file 'DotNetFX\WindowsInstaller-KB893803-v2-x86.exe' in item '.NET Framework 2.0' can not be located on disk. See Help for more information. РОП_3
Error 4 The install location for prerequisites has not been set to 'component vendor's web site' and the file 'DotNetFX\dotnetfx.exe' in item '.NET Framework 2.0' can not be located on disk. See Help for more information.
Error 5 The install location for prerequisites has not been set to 'component vendor's web site' and the file 'WindowsInstaller3_1\WindowsInstaller-KB893803-v2-x86.exe' in item 'Windows Installer 3.1' can not be located on disk. See Help for more information.

Вроде как система не может найти файлы DotNetFX\instmsia.exe и WindowsInstaller-KB893803-v2-x86.exe, чтобы поместить их в дистрибутив?

Вопрос: а где эти файлы должны находиться? Откуда система должна их взять?

Попытка 2
Ладно, думаю, не получается создать комплексный дистрибутив вместе с Framework-ом – попробую вариант с установкой Framework вручную.
В свойствах проекта ставлю
publish -> prerequisites -> download prerequisites from the vendor's web site
"брать пререквизиты с сайтов их поставщиков"

Запуcкаю publish, проходит без ошибок.

Нахожу на дистрибутивном диске, с которого устанавливал всю среду, файл dotnetfx.exe.
Запускаю на ПК №2 dotnetfx.exe. Происходит установка .NET Framework 2.0.
Сбрасываю дистрибутив своего приложения, запускаю setup. Происходит установка приложения. Все без сбоев.

Запускаю приложение. Появляется форма-вывеска. По кнопке "начать работу" появляется начальная форма исходных данных, на ней меню, кнопки, текстбоксы, комбобоксы, листбокс – все работает.
Но при нажатии кнопки, которая должна вызывать вторую форму исходных данных появляется аварийное сообщение "класс не зарегистрирован" и цепочка строк со ссылками на класс System.Windows Forms и его методы.
(примечание: Вторая форма от первой отличается только наличием MSFlexGrid, остальные элементы такие же.)

То есть элементы управления собственно Бейсиковские работают, а когда понадобился что-то MSFlexGrid – что что-то сбойнуло.


Вопрос: что я делаю не так? Как добиться, чтобы приложение работало на других машинах?

Не получается ни один из двух вариантов: ни включить Framework в состав своего дистрибутива, ни с установкой его отдельно вручную.

Да, надо уточнить, что VB 2005 Express и .NET Framework 2.0 у меня с родного диска, который в свое время Microsoft распространял с журналами, так что вроде не "кривой".

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4243
 Web-сайт: all-oracle.ru
 Профиль | | #1
Добавлено: 16.06.13 10:35
upgrade программы из VB5 в VB 2005 Express

Это плохая идея. Поверьте на слово,все эти конверторы не в состоянии конвертировать что-то сложнее чем "Hello World" Лучше будет все переписать в новую среду руками
MSFlexGrid

Насколько я помню MSFlexGrid это очень древний ACtiveX компонент. Просто так в среде NET он работать не будет. Тут потребуются щаманские танцы с бубном.
Боюсь, ваших знаний для этого будет недостаточно. Лучше найдите специалиста способного выполнить подобную работу.

Ответить

Номер ответа: 2
Автор ответа:
 Георгич



Вопросов: 2
Ответов: 8
 Профиль | | #2 Добавлено: 16.06.13 11:12
конверторы не в состоянии конвертировать что-то сложнее чем "Hello World"

Да ладно, чего уж Вы так категорично-то... конвертор свое дело сделал приемлемо. Места, гда надо было подправлять руками, он сам же и показал. И в среде VB 2005 (на машине, где одновременно установлен и VB 5) все работает. То есть эти древние и новые (уже тоже не очень новые) компоненты уживаются друг с другом. Теперь надо научиться их грамотно пересаживать на др. машины.
ваших знаний для этого будет недостаточно

Понял, что недостаточно, поэтому и задаю вопросы.

Ответить

Номер ответа: 3
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4243
 Web-сайт: all-oracle.ru
 Профиль | | #3
Добавлено: 16.06.13 13:09
Да ладно, чего уж Вы так категорично-то... конвертор свое дело сделал приемлемо.

Категорично, потому что проверено опытом.. а говнокод что он генерирует не приемлем. И если вас это устраивает то это ваше дело..

MSFlexGrid как и любой ActiveX компонент требует регистрации на целевой машинес соттвествующими правами.. без этого он работать не будет Тот инсталлер, что вы собрали, не пригоден для этих целей. Простого копирования на машину ActiveX компоненты недостаточно.

Ответить

Номер ответа: 4
Автор ответа:
 Георгич



Вопросов: 2
Ответов: 8
 Профиль | | #4 Добавлено: 16.06.13 15:47
а говнокод что он генерирует не приемлем. И если вас это устраивает то это ваше дело..

А что понимать под словами "неприемлем" и "устраивает"?
Моя программа расчетная, используется в проектировании систем отопления зданий.
Инженер-проектировщик вводит довольно большой объем исходных данных. Программа ему помогает: можно открывать вспом. таблицы, есть автозаполнение нек. данных, контроль и т.п.
Затем выполняется расчет, результатом которого является тоже довольно большой набор значений.
Ну вот, после автоматической конвертации и не слишком обременительной ручной корректировки весь интрефейс работает корректно, и расчет полностью совпадает с эталонным.
Что тут может быть "неприемлемо"? Что может "не устраивать"?

Ответить

Номер ответа: 5
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4243
 Web-сайт: all-oracle.ru
 Профиль | | #5
Добавлено: 16.06.13 16:16
Ту задачу, что вы описали можно решать на голом VB 2005/12 буквально за несколько часов без использования сторонних компонентов типа MSFlexGrid и кака следствие избавление от геморроя при распространении программы на целевые машины и избавления от регистрации в реестре и прочего

Ответить

Номер ответа: 6
Автор ответа:
 Георгич



Вопросов: 2
Ответов: 8
 Профиль | | #6 Добавлено: 16.06.13 16:32
Завтра попробую сначала просто положить OCX в одну папку с EXE, без регистрации. С программами на VB5 делал так сто раз. Почему сейчас не попробовал - а сбил с толку инсталлер VB 2005. Там в составе формируемого им дистрибутива создаются файлы, в именах которых присутствует MSFlexGrid. Я думал, этого и достаточно. Я вообще сначала про грид и не вспоминал, думал, все проблемы с установкой Famework. Сейчас до меня дошло, что скорее всего, именно этого ОСХ не хватает, но попробовать я могу только на работе.
Если без регистрации не пойдет, попробую зарег-ть.
Если и так не выйдет, останется только заменять MSFlexGrid на DataGridView. Жалко до смерти времени на это. Программирование - это не работа моя, а бывшее хобби, от которого уже отошел.

Ответить

Номер ответа: 7
Автор ответа:
 Георгич



Вопросов: 2
Ответов: 8
 Профиль | | #7 Добавлено: 17.06.13 13:40
Получилось. Через копирование ocx и регистрацию.
Необходимый минимум теории для понимания проблемы мне преподали на другом форуме. Ну, фактически, связно и в грамотных терминах подтвердили то, до чего я сам догадался и сделал.

Ответить

Номер ответа: 8
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4243
 Web-сайт: all-oracle.ru
 Профиль | | #8
Добавлено: 17.06.13 16:07
Получилось. Через копирование ocx и регистрацию.

так я вам про это с самого начала и говорил

Ответить

Номер ответа: 9
Автор ответа:
 Георгич



Вопросов: 2
Ответов: 8
 Профиль | | #9 Добавлено: 17.06.13 16:31
Спасибо.

Ответить

Страница: 1 |

Поиск по форуму





© Copyright 2002-2011 VBNet.RU | Пишите нам