Ввод пути к папке в установщике C# visual studio 2010
Что мне нужно, так это чтобы пользователь мог выбрать не только путь установки, но и путь, куда он хочет поместить файлы конфигурации для моей программы.
На данный момент у меня есть проект установки в том же решении, что и в реальной программе (программа является надстройкой Outlook 2010, но не думаю, что это имеет значение). Я пытался работать с пользовательскими действиями, используя библиотеку классов, но, похоже, это не сработало. Я пытался использовать различные типы проектов в качестве класса установщика для пользовательских действий, но ни один из них не работал. У меня есть форма Windows с кнопкой, которая должна открыть FolderBrowserDialog
и поместите любую папку, которую пользователь выберет, в текстовое поле. но всякий раз, когда я пытаюсь сделать folderBrowserDialog.ShowDialog()
форма полностью зависает. FolderBrowserDialog
никогда не показывает вообще.
Любая помощь высоко ценится:)
поздравил
1 ответ
Поскольку вы сказали, что "любая помощь" будет оценена
Вы используете ужасный инструмент. Microsoft удалила его из VS2012, и за голос пользователя проголосовало 5K+, говорящих о том, чтобы вернуть его, потому что он "работал просто отлично". Честно говоря, это представляет 5K разработчиков, которые почти ничего не знают о Windows Installer.
Этот инструмент абстрагирует и запечатывает настолько много технологии Windows Installer, что он не может предоставить, помимо множества других возможностей, возможность настройки последовательности пользовательского интерфейса установки так, как вам нужно, и в противном случае это было бы возможно.
Таким образом, вместо этого вы вынуждены использовать пользовательские действия InstallUtil для представления пользовательского интерфейса в InstallExecuteSequence, где пользовательский интерфейс не должен отображаться. Это нарушает некоторые принципы разработки Windows Installer, и если бы это было приложение, о котором вы говорили, вы бы никогда не задумывались об этом.
Если вы хотите сделать это правильно, у вас есть только 2 варианта. Postbuild манипулирует MSI, чтобы внедрить то, что не может выполнить установка и развертывание (например, манипулирование IL в встроенной DLL, потому что C# не поддерживает то, что делает CLS), или переключиться на инструмент, такой как XML установщика Windows или InstallShield Professional, который правильно обрабатывает его в первое место.
Я уверен, что теперь за них проголосует процент от тех разработчиков 5K, но мне все равно. Я занимаюсь разработкой установщиков в течение 17 лет, и я являюсь главным участником тегов, связанных с установщиком, и я знаю, что говорю не просто мнение.