Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.74/133: Рейтинг темы: голосов - 133, средняя оценка - 4.74
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163

Как запустить программу с dll на другой машине?

02.12.2010, 16:13. Показов 25206. Ответов 26

Студворк — интернет-сервис помощи студентам
Сделал class library, пытаюсь понять как развернуть программу на других машинах.
1. Возможно ли так скомпиллировать программу, она переносилась на другую машину единым exe - модулем?
2. Как правильно зарегистрировать а затем перерегистрировать dll, полученную компилляцией class library?
Спасибо за любую подсказку или ссылку!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.12.2010, 16:13
Ответы с готовыми решениями:

Не могу запустить программу на другой машине
Здравствуйте! Применяю в своей программе OPC client "prOPC Client". На машине где разрабатывается программа все работает как часы......

Google Api. Как запустить на другой машине?
Помогите, пожалуйста, разобраться с программой, которую я пытаюсь *создать* для удобства работы. У меня она запускается, а у коллег нет....

Как запустить программу Ассемблер на виртуальной машине NTVDM на WinXP?
У меня WinXP, говорят, что для нее можно работать с ассемблерными кодами и без DOS-BOX. Помогите пожалуйста настроить

26
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
02.12.2010, 16:23
Начнем сзади )
Цитата Сообщение от АТерентьев Посмотреть сообщение
Как правильно зарегистрировать а затем перерегистрировать dll, полученную компилляцией class library?
Если это COM-dll то с помощью RegAsm. Если нет, то регистрировать не надо.
Цитата Сообщение от АТерентьев Посмотреть сообщение
Возможно ли так скомпиллировать программу, она переносилась на другую машину единым exe - модулем?
Если COM, то должна быть отдельно. Если нет, то ILMerge.
1
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
02.12.2010, 16:35  [ТС]
А как различить com - не com? Я просто сделал отдельный проект - class library с несколькими user control (там дерево привязанное к нескольким таблицам базы данных). После компилляции получилась dll.
0
Заблокирован
02.12.2010, 16:36
есть утилита
C:\WINDOWS\system32\regsvr32.exe
для Instal/UnInstal dll-ок
Пуск->Выполнить:"regsvr32.exe" выпадет help
может она пригодится
2
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
02.12.2010, 16:39
АТерентьев, Используй ILMerge, это обычная .NET DLL.
1
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
02.12.2010, 16:59  [ТС]
Пытаюсь понять как ее использовать.
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
02.12.2010, 17:24
Лучший ответ Сообщение было отмечено как решение

Решение

Windows Batch file
1
2
3
4
ILMerge.exe /t:winexe /out:<путь_к_будущему_exe> <пути_к_файлам_которые_нужно_объеденить__через_пробел>
 
Пример:
ILMerge.exe /t:winexe /out:D:\1.exe D:\1\CODECO~1.EXE D:\1\PROCES~1.DLL
Цитата Сообщение от Dzhej-Dzhej Посмотреть сообщение
есть утилита
C:\WINDOWS\system32\regsvr32.exe
Она не работает с .NET сборками. Для этого нужен RegAsm. Он идет стандартно с .NET.
6
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
02.12.2010, 17:38  [ТС]
При запуске полученного файла сообщение об ошибке
имя события проблемы CLR20r3
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
02.12.2010, 17:40
3 варианта:
1) Играйся с командной строкой
Code
1
ilmerge [/lib:directory]* [/log[:filename]] [/keyfile:filename [/delaysign]] [/internalize[:filename]] [/t[arget]:(library|exe|winexe)] [/closed] [/ndebug] [/ver:version] [/copyattrs [/allowMultiple]] [/xmldocs] [/attr:filename] ([/targetplatform:<version>[,<platformdir>]]|v1|v1.1|v2|v4) [/useFullPublicKeyForReferences] [/zeroPeKind] [/wildcards] [/allowDup[:typename]]* [/allowDuplicateResources] [/union] [/align:n] /out:filename <primary assembly> [<other assemblies>...]
2) Скинь файлы
3) ILMerge что-то перемудрил.
1
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
02.12.2010, 17:58  [ТС]
RegASM D:\lib.dll
выдала ошибку Warning : RA0000 - No types were register
Прикрепил 3 файла, с которыми работаю - puncts.exe, lib.dll, MySQL.Data.dll

Добавлено через 3 минуты
Как оказалось - файлы не загрузились - сообщение "Некорректный файл"

Добавлено через 1 минуту
Возможно из-за размера 172-300 кб
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
02.12.2010, 17:59
Цитата Сообщение от АТерентьев Посмотреть сообщение
RegASM D:\lib.dll
выдала ошибку Warning : RA0000 - No types were register
Мне кажется ты не читаешь сообщения:
Цитата Сообщение от SSTREGG Посмотреть сообщение
АТерентьев, Используй ILMerge, это обычная .NET DLL.
Тебе RegAsm здесь не нужен.
Цитата Сообщение от АТерентьев Посмотреть сообщение
Как оказалось - файлы не загрузились - сообщение "Некорректный файл"
Заархивируй все файлы и выложи.
0
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
02.12.2010, 18:17  [ТС]
Возможно чего-то в самой системе не хватает. Такая ошибка
CLR20r3
и без использования ILMerge. Когда просто запускаешь punct.exe - полученный в результате компилляции в VS 2005
0
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
02.12.2010, 19:25  [ТС]
Заархивировал
Вложения
Тип файла: zip Archive.zip (160.6 Кб, 85 просмотров)
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
02.12.2010, 20:23
Цитата Сообщение от АТерентьев Посмотреть сообщение
Возможно чего-то в самой системе не хватает. Такая ошибка
CLR20r3
и без использования ILMerge. Когда просто запускаешь punct.exe - полученный в результате компилляции в VS 2005
А что студия\дебагер говорят при запуске? Так можно долго пальцем в небо тыкать.
0
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
02.12.2010, 20:26  [ТС]
Я принес с работы весь каталог Solution и попробовал запустить приложение из каталога Bin. Но получил ошибку с именем проблемы -
C#
1
CLR20r3
и одна из сигнатур ошибки
C#
1
System.IO.FileLoadException
Неясно что она не может найти
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
02.12.2010, 20:33
Одна из твоих dll не может быть загружена при запуске. Ищи ошибку.
0
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
02.12.2010, 20:53  [ТС]
Видимо если dll находится в одном каталоге с exe, приложение должно запускаться. Почему не запускалось на рабочем компе - проверить можно будет только завтра. На домашнем компе получилось, правда пришлось перекомпиллировать проект, что нарушило чистоту эксперимента.
Идея то была в следующем. Хотелось выделить в проекте отдельные задачи таким образом, чтобы разрабатывать их сначала автономно, а затем пристыковывать к общему проекту.
И при всем этом не слишком усложнить процедуру развертывания проекта.
Допустим отдельные user control разработаны и скомпиллированы в dll. Если достаточно dll положить в тот же каталог , в котором находится и само приложение - это было бы то что нужно.
Видимо возможно после отладки переносить библиотечные элементы в общее solution, тогда не нужно беспокоиться где находится dll, но при этом перегружается сам проект.
Мне кажется , что было бы удобно просто складывать все dll в какой-нибудь один каталог, даже не объединяя все в одну dll , по крайней мере до какого то финишного момента. На завершающем этапе можно слить все dll в одну.
P.S. дома то я нашел ошибку - нужно было изменить адрес базы данных на localhost и перекомпиллировать.
0
46 / 46 / 3
Регистрация: 04.02.2011
Сообщений: 199
08.03.2011, 13:43
Я написал прогу с ILMerge и её защитил .NET Reactor'ом. Пользуйтесь.
Вложения
Тип файла: zip AssembliesMerger.ZIP (771.6 Кб, 461 просмотров)
0
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 2
23.05.2014, 20:12
Здравствуйте.
NickoTin, Могли бы вы помочь мне с объединением двух файлов ? .dll и .exe.
Я могу заархировать или передать в Skype.
Сможете помочь ?
Сколько ни пытался - ILMerge не получается сделать самому.
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
26.05.2014, 22:40
Цитата Сообщение от DeluxeGM Посмотреть сообщение
Я могу заархировать или передать в Skype.
Заархивируйте и загрузите как вложение в сообщение. Всё обсуждение - в теме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.05.2014, 22:40
Помогаю со студенческими работами здесь

Запустить exe на другой машине
Понимаю что тема неоднократно поднималась,но проблема у меня не решается.Не запускается программа на другой машине.Убираю две галочки:Use...

Как связать программу через интернет с базой данных на другой машине
в общем вопрос вот в чем, у меня есть программка которая делает расчеты я ввожу некоторые данные а программа связывается с базой данных...

Узнать какие DLL использует программа для запуска на другой машине
Уважаемые господа! Сегодня столкнулся с тем (да-да, прогаю я не давно и криво), что программа мне писала при запуске на другом компе(хотя...

Запустить программу на удаленной машине через сеть
Здравствуйте, подскажите как можно запустить бат файл, который исполнится на другом компьютере в локальной сети? Содержание бат файла: ...

Как запустить одну программу из другой?
Написать 2 программы. 1-ая – управляющая, 2-ая – клиент. Программа клиент отображает число и меняет произвольную цифру на 1 каждую секунду....


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru