Newsgroup: it.comp.lang.visual-basic
Titolo: Copiare un progetto in un altro

Ho due progetti molto simili, che differiscono tra loro solo per due o 
tre moduli. Vi sono in tutto circa una trentina di moduli.
I progetti hanno nomi diversi.
Per accelerare le cose avevo pensato di 'copiare e incollare' tutto il 
progetto in un altro directory e cambiare poco a poco i moduli che si 
devono cambiare.
Il fatto è che VB .NET genera un sacco di files-progetto che non sono 
editabili.  vari .Designer, .vbproj,  .sln, .resx, etc.
Cosciente di ciò, anche dopo i vari errori che ho avuto nei vari 
tentativi,  vado coi piedi di piombo a cambiare soprattutto i nomi dei 
moduli.
Tuttavia anche facendo questo, ogni tanto noto che il progetto 'non 
trova' alcune cose, a random ogni volta, che sono implicite nel file 
Designer.vb e che non è stato cambiato.
Questo mi fa diventare pazzo.
Esiste un modo 'corretto' per fare ciò ??
Ho provato anche a creare un nuovo progetto vuoto con nome nuovo, e dopo 
aggiungere piano piano tutti i moduli (tutti i forms col relativo 
.Designer) ma nemmeno questo funziona.
Ed 'importare' semplicemente i forms tali e quali, cioè solo la parte 
.vb non mi serve a niente, perchè manca tutta la parte 'xxx.Designer.vb' 
che è la più scocciante a ricreare.
Chi puo' darmi qualche consiglio ?

 
Nel frattempo mi sono fatto un po' di esperienza e, dopo molte fasi 
trials-and-errors piï¿œ bestemmie e imprecazioni sono arrivato a delle 
'linee guida' personali, per ottimizzare la transizione senza 
spargimento di sangue.
Allora, devo dire che , visto che i miei progetti sono tutti molto 
simili, li ho divisi tutti in due parti :
1) una 'base comune, con circa 20 moduli.
  Questi contengono la 'struttura base' sulla quale appoggiano TUTTI i 
progetti, come il look, e la 'User Interface' (ossia il Design di tutti 
i forms, inclusi il trapping degli eventi)
2) Su questa base, si costruiscono i progetti seguenti.
Non avendo io una lunga esprienza con .NET, io procedo in questo modo, 
per 'creare' un nuovo progetto con la base, per poi costruirci il resto. 
Il fatto ï¿œ che la 'Base' ed il nuovo progetto hanno nomi differenti, e 
non si puo' semplicemente 'copiare' il tutto subito da una parte all'
altra. Non funziona. Sarebbe troppo bello.
La mia base si si chiama TLRoot.
1. Fare il Load di TLRoot.vbproj
    cambiare SOLO le Project Properties e l'Assembly Properties
    Fare il Run (importante) e Save All e uscire.
2. Ancora fare il Load di TLRoot.vbproj
     Fare il 'rename' del project sul Solution Explorer (ad esempio
     NewProject)
     Run & Save & Exit
3.  fare il Load del NewProject.vbproj
     Run & Save & Exit
4.  Cambiare il nome del directoy e fare il rename di TLRoot.sln a
      NewProject.sln (attenzione a non farlo prima d'ora altrimenti dï¿œ
      molti errori perchï¿œ non trova dei moduli)
Dovreste trovarvi adesso con un NewProject tutto completo, con la base
giï¿œ pronta per lavorarci sopra.

 Chi puo' darmi qualche consiglio ?
non ho be capito quale è lo scopo, ma mi sembra che se usassi una class 
library faresti molto prima.
.m
-- 
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
blog @ 
http://milestone.topics.it
whynot [ at ] topics [ dot ] it

 
Il fatto ï¿œ che non ho molta esperienza con .NET. Infatti ï¿œ solo un anno 
che sono passato a .NT dopo decenni di Basic e Visual Basic 6.
Per cui non ho molta familiaritï¿œ con tutti i vari files che .NET genera 
e che non sopno editabili. Per cui ï¿œ impossibile copiare tout-court un 
progetto su un altro cambiando solo il nome.
Se qualcuno mi da un link dove posso trovare esempi pratici....
Il mio problema ï¿œ che ho molto progetti simili, cioï¿œ la GUI (Menustrip, 
Toolstrip, eventtrapping) deve essere uguale per tutti.
Per ogni progetto cambiano solo i singoli moduli.
Io mi sono costruito un progetto (.vbproj) base, che chiamo  TLRoot, che 
ogni volta 'copio' cambiandogli il nome, e da lï¿œ poi lo completo con i 
suoi moduli particolari.

Come diceva Mauro, per me devi crearti una Class Library.
Ti fai la tua bella libreria, tutta in un progetto, e poi dalle altre
soluzioni importi direttamente la libreria (piccolo consiglio, io
importo i progetti per intero, così posso fare debug della libreria
mentre la sto usando).
E' esattamente ciò che si faceva in VB6 con i gruppi di progetti.
In .NET si chiamano "soluzioni" ma è la stessa cosa.
Nicola

 
Non mi ero mai trovato nella necessità di avere una GUI interface sulla 
quale si baseranno decine di progetti.
Per questo, in questo campo particolare, non ho nessuna esperienza, 
nemmeno in VB6