Question

C # 2005

J'utilise une classe d'installation comme je l'ai besoin d'une action personnalisée qui va lire dans un fichier de configuration XML.

Ainsi, lorsque l'utilisateur clique deux fois la configuration, il y aura un fichier config.xml dans le même dossier. Je voudrais lire dans ce fichier config.xml lors de l'installation événement. Le dossier contiendra setup.exe et config.xml

Cependant, il ne peut pas trouver le fichier config.xml comme il est à la recherche sous C: \ windows \ system32. J'ai trouvé en utilisant applicationstartup.path. Cependant, le dossier d'installation qui contient la configuration et config.xml se trouve sur mon bureau.

Je pensais qu'il va chercher dans l'emplacement actuel. Ce qui serait le dossier de configuration.

La difficulté est que mon dossier de configuration sera téléchargé à partir de l'Internet et tout utilisateur peut le télécharger et décompresser partout sur leur ordinateur.

Voici mon extrait de code pour l'événement lors de l'installation.

Un grand merci pour tous les conseils

protected override void OnAfterInstall(System.Collections.IDictionary savedState)
    {
        DataTable dt = new DataTable();
        MessageBox.Show(Application.StartupPath.ToString());
        dt.ReadXml("config.xml");

        MessageBox.Show(base.Context.Parameters["CAT_TargetDir"].ToString());
    } 
Était-ce utile?

La solution 3

Je suis parvenu à résoudre ce problème.

La réponse était juste d'écrire un fichier de chauve-souris simple qui fera tout le travail pour moi. Ensuite, le fichier de chauve-souris appellera la configuration et installer l'application.

Merci,

Autres conseils

En supposant que vous parlez d'un MSI, n'est pas que le OriginalDatabase propriété?

Supposons que vous n'êtes pas mistyping CAT_TargetDir au lieu de TARGETDIR vous pouvez faire le travail autour de ce qui suit: définir un CustomActionData et passer TARGETDIR comme argument à votre action personnalisée. Ce n'est pas la solution la plus élégante, mais il devrait fonctionner assez facile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top