Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
11 / 11 / 3
Регистрация: 22.10.2010
Сообщений: 97
1

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

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


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

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

Спасибо большое!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2017, 00:02
Ответы с готовыми решениями:

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

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

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

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

14
Администратор
Эксперт .NET
13114 / 10687 / 4407
Регистрация: 17.03.2014
Сообщений: 21,512
Записей в блоге: 1
31.05.2017, 00:13 2
Speedy Gonzales, NuGet, не-NuGet роли не играет. Механизм поиска и загрузка сборок работает под одинаковым правилам для всех.

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

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

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

Все побочные файлы должны находиться там, где их размещает студия. DLL-ки можно вынести (руками или скриптом сборки) в другую папку и настроить app.config так, что бы CLR смогла их потом найти (assembly probing). Но всё остальное должно лежать строго там, где было положено студией.
1
11 / 11 / 3
Регистрация: 22.10.2010
Сообщений: 97
31.05.2017, 13:52  [ТС] 8
И файлы типа
Vshost
Config
Pdb
0
Эксперт .NET
8655 / 6117 / 1019
Регистрация: 21.01.2016
Сообщений: 23,095
31.05.2017, 13:55 9
Speedy Gonzales, сделайте publish проекта выбором соответствующего пункта меню в свойствах проекта и получите папку в которой лежит всё, что нужно приложению для работы (окромясь самой платформы .NET и внешних вещей типа СУБД или подобного).
0
Эксперт .NET
7522 / 5016 / 1194
Регистрация: 25.05.2015
Сообщений: 15,297
Записей в блоге: 14
31.05.2017, 13:58 10
Speedy Gonzales, проект можно настроить так, чтобы библиотеки собирались из подкаталогов. Например, у домена есть событие поиска библиотеки, там можете предварительно загрузить. Либо можно указать домену пути поиска библиотек, и он будет сам их там искать, а не только рядом с exe. Во втором посте же описан privatePath.
0
11 / 11 / 3
Регистрация: 22.10.2010
Сообщений: 97
31.05.2017, 14:20  [ТС] 11
Спасибо большое!
По F6 я собираю проект, в release создаётся папка app.publish и там только один exe

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

Но я так и не нашёл какую-нибудь инструкцию/алгоритм по которым можно и нужно правильно компилировать проект.
Если это что-то простое, то всё очевидно - "/Release/....", там лежит *.exe
Копируй его куда хочешь и запускай.
А вот если используются дополнения, сторонние библиотеки (через тот же NuGet), как можно сформировать проект таким образом, чтобы получилось такого вида:
XML
1
2
3
4
Main Folder\
            dll\
            config\
            programm.exe
Как и где прописать зависимости?
Спасибо!
0
Администратор
Эксперт .NET
13114 / 10687 / 4407
Регистрация: 17.03.2014
Сообщений: 21,512
Записей в блоге: 1
05.02.2019, 18:07 13
Speedy Gonzales, в свойствах проекта на закладке "Build Events" есть поле ввода "Post-build event command line" где можно написать bat команды которые создадут нужные каталоги и переместят файлы. При записи команд советую испоьзовать "макросы" вместо жестко указанных путей. Список макросов и их значения можно увидеть если нажать кнопку "Edit Post-build..."
1
11 / 11 / 3
Регистрация: 22.10.2010
Сообщений: 97
06.02.2019, 15:23  [ТС] 14
OwenGlendower
А не подскажите где подробнее об этом можно почитать?
Всемирный Разум не сильно эту тему, как собирать проект, раскрывает.
0
Администратор
Эксперт .NET
13114 / 10687 / 4407
Регистрация: 17.03.2014
Сообщений: 21,512
Записей в блоге: 1
06.02.2019, 17:14 15
Speedy Gonzales, в официальной документации есть описание
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2019, 17:14

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

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

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

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

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

Раздельная компиляция родительского и дочернего классов не получается, если поместить их в пакет
...То есть Гербердт Шилдт благополучно дошёл в своей книге до этого места, а как компилить- не...

Как правильно присоединить пакет java.lang? (компиляция без инструкции import)
Друзья! У меня в книжке написано: Вот пытаюсь import javax.swing.*; Заменить на...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.