Ответ 1
Обычно я не помещаю такие вещи, как создание zip файлов, инсталляторов, пакетов NuGet и т.д. в мой фактический проект.
Зачем? Потому что, когда я помещаю его туда, он запускается каждый раз, когда я создаю проект в Visual Studio, например, когда я отлаживаю.
Но zip файлы, установщики и т.д. нужны только тогда, когда я делаю релиз, поэтому я не хочу ждать их повторного создания каждый раз, когда я нажимаю F5 в Visual Studio.
Чтобы сделать выпуск, я обычно создаю командный файл, который выполняет файл проекта MSBuild, который создает все, что необходимо для выпуска.
IMO, создающий ZIP файл, также входит в этот файл проекта MSBuild.
Вы можете найти всю необходимую информацию в этих двух предыдущих ответах:
- Как создать базовый командный файл и файл проекта MSBuild
(актуальный вопрос о создании установщика с WiX, но вначале я создаю файл проекта MSBuild) - Как создать файл ZIP с задачами сообщества MSBuild
Плюс, вот пример файла проекта MSBuild из одного из моих проектов, который выполняет следующие действия:
- создать проект
- выполнить тесты модулей
- создайте две папки выпуска с двоичными файлами (одна DLL и одна .exe)
- создайте два zip файла, по одному для каждой папки с двоичными файлами
- создать пакет NuGet для DLL
- создать настройку ClickOnce для .exe
- автоматически устанавливает правильный номер версии для всех
Самое замечательное в этом подходе заключается в том, что я могу сделать выпуск, включающий все, что я только что перечислил, одним щелчком мыши (запуск пакетного файла).
Создание всего этого материала занимает некоторое время, но поскольку оно не является частью решения Visual Studio, оно не запускается каждый раз, когда я выполняю сборку в Visual Studio - я выполняю его только тогда, когда мне это действительно нужно.