Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
12 / 12 / 3
Регистрация: 22.10.2010
Сообщений: 137

Пакет NuGet и компиляция проекта

31.05.2017, 00:02. Показов 5029. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!!!!
Есть проект, к нему добавлены NuGet пакеты:ClosedXML, ExcelDataReader.
Запускают компиляция в режиме realize. На выходе много файлов.
Как можно сделать exe с основной частью и в отдельной папке необходимые dll из пакетов?

Раньше когда компилировал простые сборки, на выходе получал один exe и был счастлив, а тут чего-то я туплю.

Спасибо большое!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.05.2017, 00:02
Ответы с готовыми решениями:

Переподключить пакет nuget
Привет! Использую Visual Studio. Через Управление пакетами NuGet... скачал и установил нужный пакет. Ссылка в проект тоже...

Не удается установить пакет Nuget
Привет! Для работы мне не обходимы следующие библиотеки: OtpSharp; Albireo.Base32; -- Пытаюсь их установить через NuGet -...

Не могу установить/удалить пакет NuGet: Элемент с тем же ключом был установлен
Пытаюсь установить ЛЮБОЙ пакет из NuGet, в Обозревателе решений видно, что идет установка: появляются папки, классы и т.д. Сразу же после...

14
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,898
Записей в блоге: 1
31.05.2017, 00:13
Speedy Gonzales, NuGet, не-NuGet роли не играет. Механизм поиска и загрузка сборок работает под одинаковым правилам для всех.

Загрузка сторонних библиотек из указанного места

Размещение подключенных библиотек не рядом в exe, а в отдельной папке

Как грамотно использовать много библиотек
1
Эксперт .NET
 Аватар для Usaga
14303 / 9388 / 1354
Регистрация: 21.01.2016
Сообщений: 35,398
31.05.2017, 08:31
Цитата Сообщение от Speedy Gonzales Посмотреть сообщение
Раньше когда компилировал простые сборки, на выходе получал один exe и был счастлив, а тут чего-то я туплю.
Вам эти DLL-ки жить мешают, что ли?
1
12 / 12 / 3
Регистрация: 22.10.2010
Сообщений: 137
31.05.2017, 11:27  [ТС]
Нет, не мешают.
Просто не совсем понимаю что именно относится к проекту. Что нужно на других ПК иметь в папке с программой для её работы.
0
Эксперт .NET
 Аватар для Usaga
14303 / 9388 / 1354
Регистрация: 21.01.2016
Сообщений: 35,398
31.05.2017, 11:50
Speedy Gonzales, нужно всё то, что студия ложит в папку Release или при паблишинге.
0
12 / 12 / 3
Регистрация: 22.10.2010
Сообщений: 137
31.05.2017, 12:23  [ТС]
Я это понимаю.
Но я использую Closed XML и там есть dll этого пакета, так же pdb и XML с именами используемого пакета. Так вот хочется понимать, что нужно забирать, чтобы мой проект запускался на другом ПК. А в идеале разместить все побочные файлы в отдельной папке, а exe запускаемый рядом с папкой
0
Эксперт .NET
 Аватар для Usaga
14303 / 9388 / 1354
Регистрация: 21.01.2016
Сообщений: 35,398
31.05.2017, 13:09
Speedy Gonzales, ещё раз: забирать нужно всё, что студия ложит (кладёт) в папку Release. Всё.

Все побочные файлы должны находиться там, где их размещает студия. DLL-ки можно вынести (руками или скриптом сборки) в другую папку и настроить app.config так, что бы CLR смогла их потом найти (assembly probing). Но всё остальное должно лежать строго там, где было положено студией.
1
12 / 12 / 3
Регистрация: 22.10.2010
Сообщений: 137
31.05.2017, 13:52  [ТС]
И файлы типа
Vshost
Config
Pdb
0
Эксперт .NET
 Аватар для Usaga
14303 / 9388 / 1354
Регистрация: 21.01.2016
Сообщений: 35,398
31.05.2017, 13:55
Speedy Gonzales, сделайте publish проекта выбором соответствующего пункта меню в свойствах проекта и получите папку в которой лежит всё, что нужно приложению для работы (окромясь самой платформы .NET и внешних вещей типа СУБД или подобного).
0
Эксперт .NET
 Аватар для Rius
13136 / 7696 / 1677
Регистрация: 25.05.2015
Сообщений: 23,479
Записей в блоге: 14
31.05.2017, 13:58
Speedy Gonzales, проект можно настроить так, чтобы библиотеки собирались из подкаталогов. Например, у домена есть событие поиска библиотеки, там можете предварительно загрузить. Либо можно указать домену пути поиска библиотек, и он будет сам их там искать, а не только рядом с exe. Во втором посте же описан privatePath.
0
12 / 12 / 3
Регистрация: 22.10.2010
Сообщений: 137
31.05.2017, 14:20  [ТС]
Спасибо большое!
По F6 я собираю проект, в release создаётся папка app.publish и там только один exe

Но я точно знаю, что нужны dll из пакетов, для запуска на других ПК
0
12 / 12 / 3
Регистрация: 22.10.2010
Сообщений: 137
05.02.2019, 17:28  [ТС]
простите, что поднимаю тему из "морга"

Но я так и не нашёл какую-нибудь инструкцию/алгоритм по которым можно и нужно правильно компилировать проект.
Если это что-то простое, то всё очевидно - "/Release/....", там лежит *.exe
Копируй его куда хочешь и запускай.
А вот если используются дополнения, сторонние библиотеки (через тот же NuGet), как можно сформировать проект таким образом, чтобы получилось такого вида:
XML
1
2
3
4
Main Folder\
            dll\
            config\
            programm.exe
Как и где прописать зависимости?
Спасибо!
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,898
Записей в блоге: 1
05.02.2019, 18:07
Speedy Gonzales, в свойствах проекта на закладке "Build Events" есть поле ввода "Post-build event command line" где можно написать bat команды которые создадут нужные каталоги и переместят файлы. При записи команд советую испоьзовать "макросы" вместо жестко указанных путей. Список макросов и их значения можно увидеть если нажать кнопку "Edit Post-build..."
1
12 / 12 / 3
Регистрация: 22.10.2010
Сообщений: 137
06.02.2019, 15:23  [ТС]
OwenGlendower
А не подскажите где подробнее об этом можно почитать?
Всемирный Разум не сильно эту тему, как собирать проект, раскрывает.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,898
Записей в блоге: 1
06.02.2019, 17:14
Speedy Gonzales, в официальной документации есть описание
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.02.2019, 17:14
Помогаю со студенческими работами здесь

Как обновить загруженный NuGet пакет на nuget.org?
Как обновить загруженный NuGet пакет на nuget.org?

Не могу обновить пакет Nuget
в окне Обновления нажимаю "Обновить" на пакете NuGet, скачивается, вроде бы устанавливается, и ничего не меняется. как обновить? есть ли...

Почему NuGet-пакет успешно устанавливается, если нужной зависимости нет?
Имеем код: <?xml version="1.0" encoding="utf-8"?> <package > <metadata> <id>ABCNET.dll</id> <version>1.0.0</version>...

Куда положить Logo.jpg, чтобы иконка применялась к NuGet пакет, но не вставлялась в сам проект?
Куда положить Logo.jpg, чтобы иконка применялась к NuGet-пакету, но не вставлялась в сам проект, в котором подключается данный NuGet-пакет?

Как импортировать пакет одного проекта в классах другого проекта
Здравствуйте, совсем недавно начал изучать Java, такой вопрос: работаю в иде Eclipse, как мне импортировать пакет, созданный в одной...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru