Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/75: Рейтинг темы: голосов - 75, средняя оценка - 5.00
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
1

Вывод программы в релиз

31.10.2016, 17:35. Показов 14612. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Написал программу, в процессе разработки устанавливал Nuget пакет Microsoft.Office.Interop.Excel. После окончания работы в папке bin есть две папки Debug и Release. Release пустая, а в Debug лежит экзешник моей программы и еще несколько файлов. Интересует следующее:
1) Зачем папка Release нужна?
2) Если запустить экзешник на другом компьютере, то программа вылетает с ошибкой, видимо пакета этого не хватает. Пробовал .dll положить в одну папку с exe файлом, то же не работает, с той же ошибкой вылетает. Как запускать программы на других машинах?
3) Чем можно запаковать exe файл и все dll, чтобы был один красивый экзешник, который можно было запустить на любой машине и он работал себе спокойно?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2016, 17:35
Ответы с готовыми решениями:

Релиз программы
Здравствуйте. Возник такой вопрос. Так-как я совсем недавно стал изучать шарп, буквально месяц,...

Релиз программы без зависимости от .NET
Подскажите, возможно ли как то сделать, что бы программу можно было запускать одним файлом на любом...

PlayMarket. Деактивировать последний релиз программы
Как в этом долбанном интерфейсе найти откатиться на предыдущий релиз?

Phonon при компиляции релиз программы выдает ошибку
При релиз компиляции phonon выдает вот такие ошибки (1 скрин) Вот код реализации : ...

11
911 / 815 / 333
Регистрация: 03.02.2015
Сообщений: 5,265
Записей в блоге: 9
31.10.2016, 17:43 2
Release - оптимизирует код (грубо говоря).
Debug - все собирается точно так как Вы написали без оптимизации.

При "кривом" написании кода (особенно в больших проектах) - Release и Debug могут работать по разному.
Можете выбрать как собрать проект под Release или Debug .
Цитата Сообщение от Chizel Посмотреть сообщение
Если запустить экзешник на другом компьютере, то программа вылетает с ошибкой,
Какой что пишет?

Цитата Сообщение от Chizel Посмотреть сообщение
Чем можно запаковать exe файл и все dll, чтобы был один красивый экзешник, который можно было запустить на любой машине и он работал себе спокойно?
в смысле установщик сделать? Что значит запокавать? Или что бы одним файлом все было?
1
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
31.10.2016, 17:51  [ТС] 3
Цитата Сообщение от Sanya_sa Посмотреть сообщение
Какой что пишет?
Во вложении скрин.
Цитата Сообщение от Sanya_sa Посмотреть сообщение
Или что бы одним файлом все было?
Да, чтобы одним файлом было все.
Миниатюры
Вывод программы в релиз  
0
911 / 815 / 333
Регистрация: 03.02.2015
Сообщений: 5,265
Записей в блоге: 9
31.10.2016, 17:55 4
Цитата Сообщение от Chizel Посмотреть сообщение
Сообщение от Sanya_sa
Какой что пишет?
Во вложении скрин.
Ао ходу библиотек не хватает)

Цитата Сообщение от Chizel Посмотреть сообщение
Сообщение от Sanya_sa
Или что бы одним файлом все было?
Да, чтобы одним файлом было все.
https://habrahabr.ru/post/126089/
Ни разу так не делал.
1
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
31.10.2016, 18:01  [ТС] 5
Цитата Сообщение от Sanya_sa Посмотреть сообщение
Ао ходу библиотек не хватает)
Эмм, ну я тоже думаю, что не хватает библиотек, что делать то теперь?
0
933 / 461 / 233
Регистрация: 02.06.2016
Сообщений: 731
31.10.2016, 18:35 6
Chizel, больше похоже на то, что приложению прав не хватает. Пробовали запускать от имени администратора?
Цитата Сообщение от Chizel Посмотреть сообщение
Зачем папка Release нужна
выберите перед компиляцией релизную конфигурацию, тогда он в папку Release положит exe'шник без всякой отладочной фигни.
Вывод программы в релиз
2
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
31.10.2016, 19:00  [ТС] 7
Цитата Сообщение от Aael Посмотреть сообщение
Пробовали запускать от имени администратора?
Попробовал, не помогло, та же самая ошибка.
Про релиз спасибо, понятно стало.
0
Эксперт .NET
12083 / 8391 / 1283
Регистрация: 21.01.2016
Сообщений: 31,638
31.10.2016, 19:17 8
Цитата Сообщение от Chizel Посмотреть сообщение
Да, чтобы одним файлом было все.
Совсем-совсем одним файлом не получится. Обязательно нужно будет, чтобы в системе была установлена нужная версия .NET Framework. Полностью "самодостаточные" EXE-шники для .NET пока сделать невозможно (да и не особо кому нужно).

Упаковывать всё хозяйство в один EXE, крайне тупое занятие. Меньше он от этого не станет, а на удобстве использования это никак не отразится.

Ну а если тебе действительно хочется фигнёй позаниматься, то можешь или посмотреть в сторону ILMerge как выше уже порекомендовали или затолкать все DLL-ки в ресурсы и подгружать их вручную подписавшись на событие Domain.AssemblyResolve.

Есть ещё третий вариант: assembly probing. Это когда все DLL-ки складываются в отдельную папочку рядом с EXE-шником и в app.config указывается, где CLR должна их искать.

Последний вариант самый адекватный.

Хотя вру. Самый адекватный вариант - устанавливать программу вместе со всем её барахлом с помощью установщика любой сложности и выкидывания ярлыка на рабочий стол или в меню. Тогда вообще пофигу всем сколько у твоей программы DLL-лок и где они и как лежат.
0
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
31.10.2016, 19:26  [ТС] 9
По поводу упаковки понятно. А вот что с ошибкой делать?
Программу делал используя .Net Framework 4.5.1, на той машине, на которой не запускается 4.5.2 стоит. Может в этом дело?
0
Эксперт .NET
12083 / 8391 / 1283
Регистрация: 21.01.2016
Сообщений: 31,638
31.10.2016, 19:30 10
В ошибке говорится что-то про COM-сервис. Видимо твоя программа завязана на некий COM-сервис, которого на другой машине нет (или он не той версии). Так же я увидел заветное слово EXСEL, что говорит о том, что твоя программа хочет EXСEL, но не видит COM-сервиса для работы с ним (или самого офиса в системе нэма).
0
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
31.10.2016, 19:42  [ТС] 11
Цитата Сообщение от Usaga Посмотреть сообщение
В ошибке говорится что-то про COM-сервис. Видимо твоя программа завязана на некий COM-сервис, которого на другой машине нет (или он не той версии). Так же я увидел заветные четыре буквы EXEL, что говорит о том, что твоя программа хочет EXEL, но не видит COM-сервиса для работы с ним (или самого офиса в системе нэма).
Точно, ступил я, офиса то там нет Поставил офис, все запускается и работает, если запускать из папки Debug, если просто exe файл вытащить и положить где-нибудь, то не запускается, dll кидал ему в эту же папку, не помогло. Я еще ссылку добавлял, когда разрабатывал, на работу с MS SQL, может эту dll тоже надо ему? Но в папке packeges больше никаких dll нет, только та, для работы с Excel которая.
0
Эксперт .NET
12083 / 8391 / 1283
Регистрация: 21.01.2016
Сообщений: 31,638
31.10.2016, 19:47 12
Лучший ответ Сообщение было отмечено Chizel как решение

Решение

В папке Debug, помимо самой программы могут лежать используемые ею DLL-ки и конфигурационные файлы. В packages лезть не нужно, студия сама оттуда всё что нужно скопирует.
1
31.10.2016, 19:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2016, 19:47
Помогаю со студенческими работами здесь

Релиз консольной программы с SNMP запросами - найти ошибку в коде
Привет всем! Я написал программку, которая опрашивает некоторые устройства используя запросы по...

Релиз
Скачал FLTK, установил, все работает. Создал релиз. У меня все отлично запускается, а у брата...

Релиз
У меня в проекте есть картинки, хочу что б при релизе они упаковались в ехе или так нельзя? Как...

Релиз 8.5.3
Кто-нибудь знает когда будет релиз Релиз 8.5.3? Хоть и 8.5.2. был относительно недавно, но может...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru