Вы не указали authSource в строке подключения: mongodb://matt:passwordexample!@localhost:27017/user-data?authSource=admin
.
MSI является установщиком для Вас приложение. Файл настройки является начальной загрузкой, которая проверит на pre-reqs. Как правильная версия установщика Windows. Я думаю, что это - также setup.exe, который позволит загрузку правильной версии платформы.NET. Можно использовать.MSI самостоятельно, Вы не можете использовать просто setup.exe.
Вы корректны, что установка позволяет загрузку правильной версии платформы.NET.
Существуют способы объединить MSI и Setup.exe для создания единственного exe. Вещи как самораспаковывающаяся zip или iexpress.
Почему Вы не можете отправить им обоим файлы хотя? Я думаю, публикуете ли Вы установку и msi на сервере для загрузки, установка найдет и загрузит Ваш MSI, когда это будет требоваться.
Причина отдельного setup.exe, я думаю, состоит в том вследствие того, что у Вас не может быть двух установок MSI, работающих одновременно. Поэтому, если Ваше приложение потребует предпосылок, установленных MSI, то Ваша установка столкнется с проблемой.
Относительно установки платформы Вы могли в настройках проекта включать платформу.NET как предпосылку Вашего приложения, и будет это уже устанавливаться если не существующий на целевой машине. Можно далее принять решение упаковать установку или загрузить ее с Интернета
Setup.exe является действительно bootstrapper, который проверяет, доступны ли предпосылки на машине клиента. Это включает.Net Framework, но также и например SQL Компактный Выпуск при выборе этого в свойствах проекта. Это ничего не удалит. Когда предпосылка будет необходима, она даст опцию загрузить это с Интернета или остановить установку.
Файл MSI является файлом Windows Installer, содержащим Ваше программное обеспечение. Этот MSI заботится об установке Вашего продукта на машине клиента. При поставке только MSI продукт только установит на машине, которая имеет все предпосылки, установленные прежде, чем запустить MSI.
Если Вы хотите сделать единственное распределение файла, можно объединить эти 2 файла в единственном EXE с помощью iexpress. (Iexpress является частью программного обеспечения, которое распределяется с Windows и позволяет Вам создавать установочные пакеты.)
Надеюсь, это поможет.