Pubblicazione applicativo

di il
11 risposte

Pubblicazione applicativo

Buonasera, amici.
Ho l'ennesimo problema e lo espongo alla vostra attenzione per un opportuno chiarimento, sebbene abbia trovato la soluzione.
I fatti : lavoro con VS 2019 - edizione gratuita. Ho un progetto ,che in fase di debug non rileva alcun errore e funziona come è giusto che sia.
Passo alla pubblicazione dell' app ed includo nel progetto una directory e 3 file di testo che sono nella cartella Debug, alla quale l'applicativo fa riferimento (application.startupPath ecc.) quando cartella e files vengono utilizzati.
L'applicazione installata non funziona : rileva errori di vario genere (index fuori range, oggetto non riconosciuto, ecc.)
Dopo aver perduto alcune ore per capirci qualcosa, mi è venuta l'idea(!!!) di spostare nella directory del progetto la cartella e i tre files.
Ho rieseguito la pubblicazione e l'installazione : tutto funziona perfettamente.
La mia domanda è questa : come fa il programma a funzionare se il codice fa riferimento alla cartella di debug ma cartella e files sono collocati in altra posizione? E' giusto che sia così? Perchè? Grazie a chi mi farà capire.

11 Risposte

  • Re: Pubblicazione applicativo

    Depende… da che depende? Da che parte metti il progetto tutto depende!

    Controlla i percorsi delle directory.

    Ma se togli questi file dalla dir del progetto, funziona anche in debug?

    Assicurati che il compilatore inserisca tutti i percorsi dei files.

  • Re: Pubblicazione applicativo

    Tutti! Anche quelli di terze parti.

  • Re: Pubblicazione applicativo

    La compilazione in modalità Debug non va utilizzata per la pubblicazione.

    Devi compilare in Release e pubblicare da questa versione, ovviamente con tutti i file che servono posti nella corretta cartella.

  • Re: Pubblicazione applicativo

    30/01/2024 - sihsandrea ha scritto:


    Ma se togli questi file dalla dir del progetto, funziona anche in debug?

    No.Non funziona.

    Funziona solo se directory e files si trovino in bin/debug, come da codice.

    Grazie SihsAndrea.

  • Re: Pubblicazione applicativo

    30/01/2024 - oregon ha scritto:


    La compilazione in modalità Debug non va utilizzata per la pubblicazione.

    Devi compilare in Release e pubblicare da questa versione, ovviamente con tutti i file che servono posti nella corretta cartella.

    Ho seguito questo procedura :

    a)selezionata modalità compilazione : Release

    b)ricompilato programma

    c)ho controllato che nella directory Release fossero presenti i files delativi alla nuova compilazione

    d)sono andato nelle proprietà del progetto ed ho eseguito la pubblicazione (con i 3 files di testo e la directory collocati in debug).

    Risultato : non funziona.

    Nel programma appena installato (in C:\Users\g_nap\AppData\Local\Apps\2.0\ecc.) ho spostato il files dalla dri debug nella dir principale e tutto funziona.

    Sono di certo io che sbaglio ,ma …

    Grazie,Oregon.

  • Re: Pubblicazione applicativo

    I file li devi copiare in bin/release, la cartella debug non la devi più utilizzare se non per le modifiche e i nuovi test.

    Nel codice come arrivi ai file di cui parli? Non avrai messo path assoluti spero

  • Re: Pubblicazione applicativo

    30/01/2024 - oregon ha scritto:


    I file li devi copiare in bin/release, la cartella debug non la devi più utilizzare se non per le modifiche e i nuovi test.

    Questo passaggio non mi era noto e comunque -dopo aver spostato il file (ho voluto semplificare il caso con un esempio molto banale ,ma rispondente al problema) in bin/release :il risultato non è cambiato (ecco l'errore che mi viene restituito :

     ************** Testo dell'eccezione **************
    System.IO.FileNotFoundException: Il file 'C:\Users\g_nap\AppData\Local\Apps\2.0\EAX62BQ1.RZG\GC6QNVQR.DQZ\wind..tion_1be2430632dc8451_0001.0000_d6485ae105852f2b\html.txt' non è stato trovato). 

    in effetti è vero, giacchè il file si trova in C:\Users\g_nap\AppData\Local\Apps\2.0\EAX62BQ1.RZG\GC6QNVQR.DQZ\wind..tion_1be2430632dc8451_0001.0000_d6485ae105852f2b\bin\Release"

    Spostando il file nella posizione C:\Users\g_nap\AppData\Local\Apps\2.0\EAX62BQ1.RZG\GC6QNVQR.DQZ\wind..tion_1be2430632dc8451_0001.0000_d6485ae105852f2b funziona.

  • Re: Pubblicazione applicativo

    30/01/2024 - oregon ha scritto:


    Nel codice come arrivi ai file di cui parli? Non avrai messo path assoluti spero

    I percorsi sono del tipo  RichTextBox1.Text = My.Computer.FileSystem.ReadAllText(Application.StartupPath & "\html.txt")

  • Re: Pubblicazione applicativo

    Ho fatto tutte le prove del caso.

    Risultato : è funzionante -dopo la compilazione, pubblicazione ed installazione- la sola versione che vede il file txt nella directory principale (quella contenente il file sln,per intenderci e quindi fuori da debug e release).

    Detta versione NON funziona se viene avviata in ambiente di debug.

  • Re: Pubblicazione applicativo

    ApplicationStartupPath restituisce sempre la cartella in cui è posizionato il file exe con cui parte l'applicazione.

    Quindi questa cartella varia a seconda di dove è posizionato l'exe.

    I file usati dall'applicazione dovrebbero stare in cartelle apposite, 

    se condivisi con altri utenti in

    Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

    altrimenti in

    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

  • Re: Pubblicazione applicativo

    Grazie mille ,Oregon. Così farò da oggi in poi.

Devi accedere o registrarti per scrivere nel forum
11 risposte