나는 그것을 작동시켰다. 솔루션에 새로운 콘솔 프로젝트 'UninstallHelper'을 만들었습니다. 설치자 클래스을 UninstallHelper 프로젝트에 추가했습니다. 나는 OnBeforeUninstall 메서드를 재정의하고 있습니다 :
protected override void OnBeforeUninstall(IDictionary savedState)
{
base.OnBeforeUninstall(savedState);
try
{
List<string> appFolders = new List<string>();
string userFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string userDataFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
userFolderPath = userFolderPath + @"\CompanyName";
userDataFolderPath = userDataFolderPath + @"\CompanyName";
appFolders.Add(userFolderPath);
appFolders.Add(userDataFolderPath);
foreach (string folderPath in appFolders)
{
List<string> umDirs = new List<string>();
DirectoryInfo targetDir = new DirectoryInfo(folderPath);
foreach (DirectoryInfo dir in targetDir.GetDirectories())
{
if (dir.Name.StartsWith("ProductName"))
umDirs.Add(dir.FullName);
}
foreach (string dirName in umDirs)
{
DirectoryInfo subDir = new DirectoryInfo(dirName);
foreach (FileInfo file in subDir.GetFiles())
{
if (file.Exists)
file.Delete();
}
foreach (DirectoryInfo dir in subDir.GetDirectories())
{
if (dir.Exists)
dir.Delete(true);
}
subDir.Delete();
}
}
}
catch(Exception ex)
{
//Console.WriteLine(ex.Message);
//Console.ReadKey();
}
는 지금은 설치 프로그램에이 프로젝트의 기본 출력을 추가 할 수 있습니다. 그리고 마지막으로, 나는
사용자 정의 작업을을 기본 출력으로 추가
UninstallHelper 프로젝트에서 추가합니다.
이것은 나를위한 속임수였습니다.