2008-11-06 7 views

Répondre

2

Vous devez définir la valeur de InstallStateDir.
Vous devez remplacer le Commit/Install/Rollback/Uninstall et définir la valeur de InstallStateDir (I.E. Context ["InstallStateDir"] = @ "c: \ mydir") .

1

Cela devrait également fonctionner en spécifiant/InstallStateDir = "c: \ myfolder" à partir de la ligne de commande (voir KB946503). Cependant, InstallContext convertit tous les noms de paramètres en minuscules qui casse le code suivant de AssemblyInstaller, attendant de trouver le nom du paramètre mixte de cas:

private string GetInstallStatePath(string assemblyPath) 
{ 
    string str2 = base.Context.Parameters["InstallStateDir"]; 
    assemblyPath = Path.ChangeExtension(assemblyPath, ".InstallState"); 
    if (!string.IsNullOrEmpty(str2)) 
    { 
     return Path.Combine(str2, Path.GetFileName(assemblyPath)); 
    } 
    return assemblyPath; 
} 

Réglage Contexte [ « InstallStateDir »] serait peut-être travailler pour sauver l'état; Toutefois, comme l'état est chargé avant que le programme de désinstallation puisse modifier le contexte, cette solution n'est pas viable tant que Microsoft ne résout pas la méthode AssemblyInstaller.GetInstallStatePath ci-dessus.

Questions connexes