2013-07-26 2 views
0

Я использую Installer Class в моем проекте MSI, который выполняет некоторые пользовательские действия. Из-за этого класса каждый раз, когда я устанавливаю MSI, он помещает файл .InstallState в папку установки. У меня есть еще один модуль в моем проекте, который выполняет деинсталляцию существующего приложения в Silent mode с использованием кода продукта существующего приложения. Но его сбои, поскольку он не смог удалить файл .InstallState. Но если я вручную удалю его, он удалит файл.Исключить файл .InstallState из MSI

После установки приложения я попытался удалить этот файл в OnCommit() или Commit() методах установки класса, используя File.Delete(). Но пока не повезло.

Есть ли способ исключить этот файл из MSI?

ответ

0

Я нашел обходное решение для этого, во время установки я делаю File.Delete(). Я удаляю файл в пределах OnComitting() класса установщика.

protected override void OnCommitting(System.Collections.IDictionary savedState) 
{ 
    string installedPath = string.Empty; 
    installedPath = Context.Parameters["assemblypath"]; 
    installedPath = installedPath.Substring(0, installedPath.LastIndexOf('\\')); 

    File.Delete(Path.Combine(installedPath, "InstallerHelper.InstallState")); 

    base.OnCommitting(savedState); 

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