Ввод пути к папке в установщике 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 лет, и я являюсь главным участником тегов, связанных с установщиком, и я знаю, что говорю не просто мнение.

Другие вопросы по тегам