2010-08-18 2 views
3

У меня есть проект установки (MSI) в VS2008, который устанавливает мой проект. В рамках проекта я создаю файл настроек для приложения в папке SpecialFolder.CommonApplicationData + \\"settings" (две слэши находятся в коде C# для экранирования). Тем не менее, программа удаления не избавляется от этого для меня, когда она удаляет программу. Как удалить эту папку во время удаления? Я читал, что должен использовать VB Script, но я никогда не использовал его раньше, чем не совсем уверен, как это сделать. Я пробовал что-то вроде этого:Удалить не настроенные файлы

On Error Resume Next 
Dim fso, objfolder 
Set objShell = CreateObject("Shell.Application") 
Set objFolder = objShell.Namespace(COMMON_FILES + "\\settings") 
objfolder.Delete 
Set folder = nothing 
Set fso = nothing 

, но установочные файлы по-прежнему находятся после деинсталляции. Любые идеи? Спасибо

ответ

2

Добавить пользовательское действие установщика и переопределить способ удаления дополнительных файлов Uninstall.

Смотрите эту статью для получения дополнительной информации о пользовательской установке действия: Installer Class and Custom Actions

+1

@Skoder: здесь у вас есть почти все, что вам нужно знать о пользовательских действиях http://stackoverflow.com/questions/321867/visual-studio-2008-installer-project-custom-actions-not-firing –

+0

Спасибо за помощь. Я не совсем уверен в одном. Какой класс я унаследовал от 'Installer'? Я запускаю приложение WPF и не знаю, где переопределить метод Uninstall. – Skoder

+0

Возможно, вы захотите прочитать это перед написанием специального действия Install Util. http://robmensching.com/blog/posts/2007/4/19/Managed-Code-CustomActions-no-support-on-the-way-and-heres –

3

установщика Windows имеет таблицу RemoveFiles только для этой цели. К сожалению, инструмент, который вы выбрали, не раскрывает эту (или многие другие) функции. Я предлагаю изучить другой инструмент, например, Windows Installer XML. В противном случае вы столкнетесь с хрупкими антипаттерами для работы с ограничениями.

+0

Спасибо за предложение, но Боюсь, для этого я должен использовать MSI. Мне трудно поверить, что такой вариант удаления других файлов, созданных вашим приложением, должен быть обуглен почти полностью, а не только стандартной опцией, например, другими настройками. – Skoder

+0

Проекты развертывания Visual Studio (проект установки) - это просто один из многих инструментов разработки для создания пакетов установщика Windows (MSI). Проблема не в MSI, проблема в том, что это ужасный инструмент, который Microsoft включил в Visual Studio бесплатно. Инструмент не может выявить эту и многие другие возможности MSI, вынуждающие вас изобретать колесо. –

Смежные вопросы