Quali dipendenze occorrono su progetto "Setup" con Access Database?

di Anonimizzato29596 il
5 risposte
Salve,
tramite Visual Studio Community 2019 vorrei realizzare un progetto di Setup per un applicazione WinForm che ho sviluppato.

Questa applicazione utilizza un database Microsoft Access per salvare i dati in locale.

Il database viene creato all'avvio del programma nel caso non sia già presente.

Per crearlo utilizzo ADOX in questo modo:

using ADOX;

Catalog database = new Catalog();
database.Create("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=MyDatabase.mdb; Jet OLEDB:Engine Type=5");
database = null;
Quindi ho dovuto aggiungere un Riferimento ADOX al progetto

Il problema:

Quando clicco nell'eseguibile del mio progetto, non mi si avvia e non mi crea neppure il database.

Quando faccio il progetto di Setup oltre all'Output principale cosa devo aggiungere?

5 Risposte

  • Il codice è corretto, dove lo hai inserito? Dove hai cercato il database?

    Avvia un progetto nuovo C#/Windows Desktop/App Windows Form(.NET Framework)


    OleDB.png
    OleDB.png

    Chiamalo OleDB e clicca ok
    Aggiungi nei riferimenti COM: Microsoft ADO Ext. 6.0 for DDL and Security

    Incolla il tuo codice:
    
    using System;
    using System.Windows.Forms;
    using ADOX;
    
    namespace OleDB
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                Catalog database = new Catalog();
                database.Create("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=MyDatabase.mdb; Jet OLEDB:Engine Type=5");
                database = null;
            }
        }     
    }
    
    manda in esecuzione il programma con > Avvia ( triangolino verde in alto ) oppure F5

    nel percorso dell'eseguibile troverai il tuo mdb vuoto: ....\OleDB\OleDB\bin\Debug\MyDatabase.mdb
  • Ho scoperto il problema, il database lo facevo creare nella solita directory del programma, ma li non è permesso scrivere, lo faccio creare in C:\Program Files (x86)\Common Files e qui va tutto ok.

    ti ringrazio molto.
  • race ha scritto:


    Ho scoperto il problema, il database lo facevo creare nella solita directory del programma, ma li non è permesso scrivere, lo faccio creare in C:\Program Files (x86)\Common Files e qui va tutto ok.

    ti ringrazio molto.
    Attenzione, è il contrario (a meno che non metti il programma proprio dentro c:\program files)
    Se crei una cartella ad esempio c:\pippo puoi farci quello che ti pare, mentre scrivere dentro
    c:\programfiles (x86)\pippo è altra cosa (grande invenzione Microsoft)
  • race ha scritto:


    Ho scoperto il problema, il database lo facevo creare nella solita directory del programma, ma li non è permesso scrivere, lo faccio creare in C:\Program Files (x86)\Common Files e qui va tutto ok.

    ti ringrazio molto.

    +m2+ ha scritto:


    Attenzione, è il contrario (a meno che non metti il programma proprio dentro c:\program files)
    Se crei una cartella ad esempio c:\pippo puoi farci quello che ti pare, mentre scrivere dentro
    c:\programfiles (x86)\pippo è altra cosa (grande invenzione Microsoft)
    E' una vita che tengo le mie cose in una partizione o HDD con una lettera diversa da C:\ dove invece risiede il S.O. principale.
    Se voglio clonare o ripristinare Win con tutti i programmi installati configurati e funzionanti, non mi devo preoccupare dei miei dati, che non sono mescolati a Win.
    Per non parlare del fatto che qualsiasi sistema avvio: Xp, Win7, Win10, Linux Mint, i miei dati sono sempre nello stesso posto.
  • Attenzione, è il contrario (a meno che non metti il programma proprio dentro c:\program files)
    Se crei una cartella ad esempio c:\pippo puoi farci quello che ti pare, mentre scrivere dentro
    c:\programfiles (x86)\pippo è altra cosa (grande invenzione Microsoft)
    [/quote]

    Caspita sono cambiate le cose allora...
    Io mi sono affidato a questo post: https://www.vbforums.com/showthread.php?564256-Classic-VB-Where-should-I-store-the-files-that-my-program-uses-creates

    Quindi dal 2002 ad oggi sono cambiate le regole?

    Ma per ora a me funziona, dci che è un caso?

    L'unico problema è che la mia applicazione la distribuisco, poi se chi lo installa non è l'amministratore ma un semplice utente del PC non ha accesso a C:\mia_directory_di_esempio\

    Inoltre, nel Visual Studio non ho visto l'opzione C:\ tra le special Dir che puoi selezionare durante la creazione dell'installer, come puoi vedere nell'allegato.

    Screenshot del mio Visual Studio 2019
    Screenshot del mio Visual Studio 2019

    [/quote]
Devi accedere o registrarti per scrivere nel forum
5 risposte