J'ai une action personnalisée qui lit l'entrée de Registre. Si le session["UtillRegKey"]
a déjà sur le registre, printerIndex
devrait incrémenter. Le problème est déjà le registre déjà, prnKey
toujours devenir nul. Je ne pense pas pour la lecture du registre n'est pas nécessaire l'autorisation, mais même après avoir défini la permission aussi le résultat était le même. Et puis j'ai créé une application sous forme de fenêtre, et j'y ai ajouté la même fonction, et cela fonctionne comme je m'y attendais.L'action personnalisée ne peut pas accéder à la clé de Registre pour lire
Quelqu'un peut-il expliquer pourquoi ce prnKey = prnKey.OpenSubKey(registryPath, false);
donne null avec l'action personnalisée WIX. et comment puis-je surmonter ce problème.
[CustomAction]
public static ActionResult RegistryDetails(Session session)
{
try
{
string registryPath = session["UtillRegKey"];
int printerIndex = 1;
RegistryKey prnKey = Registry.LocalMachine;
prnKey = prnKey.OpenSubKey(registryPath, false);
if (null != prnKey)
{
global::System.Windows.Forms.MessageBox.Show("Not NUll");
List<string> subKeyList = new List<string>();
subKeyList.AddRange(prnKey.GetSubKeyNames());
while (subKeyList.Contains(printerIndex.ToString()))
{
printerIndex++;
}
}
string newRegistryPath = registryPath + "\\" + printerIndex.ToString();
session["UtillRegKey"] = newRegistryPath;
session["PrinterNo"] = printerIndex.ToString();
}
catch (Exception ex)
{
CurrentSession.Log(ex.Message);
Record exceptionRec = new Record(0);
exceptionRec[0] = "Errors -" + ex.StackTrace.ToString();
CurrentSession.Message(InstallMessage.Error, exceptionRec);
return ActionResult.Failure;
}
return ActionResult.Success;
}