Domanda

C # 2005

Sto usando una classe di installazione come ho bisogno di un'azione personalizzata che leggerà in un file XML di configurazione.

Così, quando l'utente fa doppio clic l'installazione, ci sarà un file config.xml nella stessa cartella. Vorrei leggere questo file config.xml su installa evento. La cartella conterrà setup.exe e config.xml

Tuttavia, non è possibile trovare il file config.xml come si è alla ricerca di sotto C: \ windows \ system32. Ho trovato questo utilizzando applicationstartup.path. Tuttavia, la cartella di installazione che contiene l'installazione e config.xml si trova sul mio desktop.

Ho pensato che cercherà nella posizione corrente. Che sarebbe la cartella di installazione.

La difficoltà è che la mia cartella di installazione verrà scaricato da Internet e qualsiasi utente potrebbe scaricarlo e decomprimerlo ovunque sul proprio computer.

Ecco il mio frammento di codice per l'evento su installa.

Molte grazie per qualsiasi consiglio

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());
    } 
È stato utile?

Soluzione 3

Io sono riuscito a risolvere questo problema.

La risposta è stata solo scrivere un semplice file bat che farà tutto il lavoro per me. Poi il file bat chiamerà il setup e installare l'applicazione.

Grazie,

Altri suggerimenti

Supponendo che si sta parlando di un MSI, non è che il OriginalDatabase proprietà?

Supponendo che non stai errori di digitazione CAT_TargetDir invece di TARGETDIR è possibile effettuare le seguenti work-around: impostare un CustomActionData e passare TARGETDIR come argomento per l'azione personalizzata. Non è la soluzione più elegante ma dovrebbe funzionare abbastanza facile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top