Наш проект на С# требует для запуска двух вещей на целевом компьютере. Первый — .net 2 или выше, что является справедливым требованием для пользователей. Второй — распространяемый пакет С++. Нам это нужно, потому что мы используем skincrafter. Это немного реже можно найти на целевом компьютере. На данный момент мы развертываем с помощью Visual Studio, и это создает файл setup.exe, который гарантирует, что и .net, и распространяемый пакет C++ будут установлены на целевую машину.
Наша проблема возникает, когда сетевые администраторы хотят распространять программу по своей сети. Они берут только msi, а не setup.exe. Это означает, что когда компьютер в сети пытается установить программу, а на его машине нет распространяемого пакета С++, программа работает неправильно.
Из того, что я прочитал, кажется, что распространяемый пакет просто помещает некоторые DLL на компьютер. Если это так, я могу просто включить эти DLL в MSI и убедиться, что они установлены на целевой машине. Или это не так просто?