PDA

View Full Version : [C#] file generati dal compilatore


Gelert
13-03-2010, 20:58
perdonate ma ho appena iniziato con C# venendo da java.

ho una domandina molto stupida, premetto che il mio IDE è visual studio 2008 professional (gentilmente offerto da microsoft in modo gratuito a tutti gli studenti UNICAL) e premetto che mi sono procurato un manuale per imparare.

ho creato il primo progetto console (classico HelloWorld), ho scritto tutto e l'ho compilato e fin qui tutto apposto.

vado a guardare la cartella del progetto e vedo che lui mi ha generato quanto segue:

http://img94.imageshack.us/img94/9035/programma.jpg

il libro spiega che nella cartella Bin sottocartella Debug il file HelloWorld.exe è l'eseguibile mentre il resto sono informazioni che usa Visual Studio per la funzione debug. è esattamente così? ho il dubbio che non sia proprio esatto. Infine il libro non spiega niente della sottocartella release e della cartella obj e dai nomi mi sembra che alcuni file si ripresentano (uguali) più volte nelle varie cartelle.

in particolare noto che tutte le cartelle hanno un file HelloWorld.exe, sono tutte copie uguali dell'eseguibile oppure ci sono differenze tra i vari file? qual'è il mio eseguibile nel caso?

P.S.
una piccola informazione: l'università mi passa gratis Visual Studio professional però è in inglese, ho notato che c'è un opzione per settare la lingua ma l'unica che mi da a disposizione è l'inglese. è possibile settarlo in italiano in qualche modo?

Gelert
15-03-2010, 08:48
up :mc: :muro:

Gioz
15-03-2010, 10:12
nella bin c'è il binario (che è il tuo applicativo vero e proprio), nome.vshost e un program debug che sono generati da VS per gestire il debug (e che a lavoro finito non ti servono fisicamente).

in obj finiscono risorse, file cache e temporanei.
se per esempio hai un comando (anche un semplice bottone) che crea una nuova form e la mostra allora in obj, tra le altre cose, vedrai Nomespazio.Formtale.resource.

per la lingua non saprei.

Gelert
15-03-2010, 10:48
comunque posso ritenere giusto che il mio programma è tutto nell'eseguibile nomeprogetto.exe (o, in base ai casi, nel file nomeprogetto.dll)? cioè, se devo dare a qualcuno l'applicazione completa, devo dare solo quello mentre il resto è tutto materiale che serve a VS?

astorcas
15-03-2010, 11:03
comunque posso ritenere giusto che il mio programma è tutto nell'eseguibile nomeprogetto.exe (o, in base ai casi, nel file nomeprogetto.dll)? cioè, se devo dare a qualcuno l'applicazione completa, devo dare solo quello mentre il resto è tutto materiale che serve a VS?

In generale quando devi distribuire un'applicazione compili in Release e prendi i file che stanno dentro la cartella omonima escludendo senza problemi i file .pdb e .vshost.exe. Ovviamente non è LA regola ma è un modo per iniziare :)

Gelert
15-03-2010, 11:06
In generale quando devi distribuire un'applicazione compili in Release e prendi i file che stanno dentro la cartella omonima escludendo senza problemi i file .pdb e .vshost.exe. Ovviamente non è LA regola ma è un modo per iniziare :)

cioè? sarebbe il contenuto della cartella release? perché per un altro progetto non me l'ha creata?

astorcas
15-03-2010, 11:12
cioè? sarebbe il contenuto della cartella release? perché per un altro progetto non me l'ha creata

cioè prima di compilare, tramite il menu di visual studio c'è un tendina che ti fa scegliere il "target di compilazione", che contiene nello standard 2 opzioni, "Debug" e "Release". Per capirne a pieno le differenze basta che ti affidi a google :)
In ogni caso quando compili in Debug l'output è di default nella cartella bin/Debug e se lo fai in Release è bin/Release.

Gelert
15-03-2010, 11:15
credo di aver capito, in entrambi i casi il contenuto della cartella obj non mi serve ma ho bisogno solo del contenuto della cartella bin (esclusi .pdb .vshost.exe e .vshost.exe.manifest), è giusto quello che ho capito?

astorcas
15-03-2010, 13:35
credo di aver capito, in entrambi i casi il contenuto della cartella obj non mi serve ma ho bisogno solo del contenuto della cartella bin (esclusi .pdb .vshost.exe e .vshost.exe.manifest), è giusto quello che ho capito?

si, questi file non sono necessari al funzionamento del tuo eseguibile :)

Gelert
15-03-2010, 13:57
ti ringrazio infinitamente ^^