Aiuto deploy

venerdì 16 gennaio 2009 - 12.54

thetord Profilo | Newbie

Ciao a tutti.
Scusate se la domanda sarà banale ma sono un completo niubbo in fatto di installazioni.
Ho fatto un programma in c# usando visual studio 2005 e utilizzando Crystal Report. Facendo girare il programma su un altro pc, i report non vengono generati in quanto le versioni delle dll di Crystal Report non combaciano....
Infatti sul pc di prova ci sono installate le dll relative a Crystal Report 8, mentre le mie sono relative a Crystal Report 10....
Ora la mia domanda è: come posso registrare le dll relative a Crystal report 10 sul pc di prova, o meglio ancora come posso crearmi un kit di installazione per la versione 10 che mi installi tutte le librerie necessarie?
Ciao e Grazie

freeteo Profilo | Guru

Ciao,
puoi fare un pacchetto di setup (quindi un progetto setup che compilato va a generare un ".msi" installer), dicendo come specifiche di includere il pacchetto crystal:

http://msdn.microsoft.com/en-us/library/aa287928(VS.71).aspx
http://blogs.dotnethell.it/freeteo/vs-2005-semplifica-il-deploy-anche-per-Crystal-Report__1190.aspx

oppure ancora meglio, se usi ClickOnce:
http://msdn.microsoft.com/en-us/library/142dbbz4.aspx

ed anche qui tu basta verificare che ci sia come prerequisito Crystal (come hai visto nel link del mio blog).
In questi modi, pacchetto msi o clickonce, quando installi l'applicazione viene installato tutto quello che le serve per funzionare.

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

thetord Profilo | Newbie

Ciao e grazie innanzitutto.
Ho provato come mi hai consigliato facendo un pacchetto di setup. Ho aggiunto al setup project le dipendenze con Crystal Report e ho impostato tra le proprietà del progetto di setup il prerequisito relativo a Crystal Report. Eppure al momento dell'installazione, viene installato il solo programma ma di Crystal Report neanche l'ombra. Quindi quando lancio l'applicazione mi viene fuori il solito errore (manca la dll CrystalDecisions.CrystalReport.Engine.dll....)
A questo punto mi son detto, provo a registrare manualmente nella gac le dll che mi servono per Crystal, però sul pc di installazione non mi riconosce il comando gacutil.... Come mai? Qualche idea?

freeteo Profilo | Guru

Strano...forse c'è una versione più vecchia già installata? magari sente quella e non la aggiorna...non saprei di preciso.

Cmq se vuoi installartelo a mano puoi farlo tranquillamente, ti basta solo lanciare l'msi che trovi nel tuo disco.
In questo post ho indicato i percorsi standard:
http://blogs.dotnethell.it/freeteo/Runtime-di-ReportViewer-2008-disponibile__12668.aspx
guarda se lo trovi anche da te (ci dovrebbe essere perchè viene giù con l'installazione di Visual Studio)



Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

thetord Profilo | Newbie

Grazie mille, mi sei stato utilissimo. Ora trova le dll di crystal report 10 e fa un tentativo di apertura, chiedendomi però user e password per il DB (cosa che sul mio pc non chiede). Inoltre mettendo user e password corretti non mi apre il report ma mi dà connessione fallita. Che tu sappia c'è qualche impostazione da settare/modificare in fase di implementazione?

freeteo Profilo | Guru

>Grazie mille, mi sei stato utilissimo.
di niente figurati



>dà connessione fallita. Che tu sappia c'è qualche impostazione
>da settare/modificare in fase di implementazione?
ti manca di passargli i parametri che ti servono a runtime per accedere al db, guarda questo thread:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=21962

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

thetord Profilo | Newbie

Ciao, il problema purtroppo rimane....
Io passavo i parametri di connessione con la seguente istruzione:

mioreport.DataSourceConnections[0].SetConnection("Server", "Database", "User", "Password");

Ora invece ho provato col metodo che mi hai suggerito (il primo), settando le impostazione tramite il logonInfo, ma il problema è sempre lo stesso.

quando faccio partire il programma in locale, il report parte tranquillamente senza che mi vengano chieste a runtime le credenziali per la connessione. Invece quando lo installo sulla macchina del cliente mi chiede le credenziali, e anche inserendole in modo corretto mi fallisce il logon.....

freeteo Profilo | Guru

>quando faccio partire il programma in locale, il report parte
>tranquillamente senza che mi vengano chieste a runtime le credenziali
>per la connessione. Invece quando lo installo sulla macchina
>del cliente mi chiede le credenziali, e anche inserendole in
>modo corretto mi fallisce il logon.....
si questo è il problema che ti dicevo, il report quando lo costruisci si salva i parametri di connessione che hai usato per farlo, quindi quando lo provi da te sono le stesse e quindi va sempre bene, ma quando lo distribuisci i parametri cambiano.

Che tipo di database stai usando? perchè se sei in sql c'è anche la proprietà "location" della tabella che potrebbe dare fastidio:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=5303

ps: il codice del thread di prima deve essere usato per tutte le tabelle del report, compresi i sottoreport, perciò magari inseriscilo dentro ad un ciclo

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

thetord Profilo | Newbie

Ciao, finalmente ci sono riuscito!
Ho provato anche settando la location ma non cambiava nulla. Così alla fine sono tornato al tuo thread precedente e ho provato nel secondo modo, cioè passando da DataTable. Ovviamente ho dovuto modificare un pò il codice ma in questo modo non ho avuto più problemi. Infatti penso che d'ora in poi con Crystal report userò sempre questo metodo, così si slegano la fase di design da quella di esecuzione.
Ti ringrazio per l'aiuto, sei stato sempre rapido e preciso!
Ciao! ;)

freeteo Profilo | Guru

>problemi. Infatti penso che d'ora in poi con Crystal report userò
>sempre questo metodo, così si slegano la fase di design da quella
>di esecuzione.
ok si infatti è un metodo corretto anche quello, anche se il passaggio dei soli parametri di connessione è più leggero e cmq dovrebbe funzionare...


>Ti ringrazio per l'aiuto, sei stato sempre rapido e preciso!
>Ciao! ;)
di niente, accetta un post così marchiamo il thread come risolto.
Grazie.



Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5