La strada si fa ardua fin dal principio. Mentre soffro con il Milan, che dopo uno spettacolare 3 a 0 del primo tempo, come un cocomero si è fatto infilare 3 goal dal Liverpool in 15 minuti. Tutta colpa di questo, del fuorigioco, per non parlare della manovra un po' lenta.......come? ok, ok, sono OT, ritorno in argomento.
Dunque, sempre nell'ottica di voler usare C# e DirectX per programmare un qualche bel giochino, ecco che mi preparo: Windows XP Pro, Visual C# 2005 con framework 2.0, DirectX 9.0 SDK. Apro il progetto StarTrooper e vedo subito che nel folder References ci sono tutti i Microsoft.DirectX.* segnalati da un ! (punto esclamativo). Ok, mi dico, dovrò aggiungere nei riferimenti del progetto le DirectX. Vado in Project --> Add Reference e cerco un po' dappertutto le DirectX. Non ci sono. Guarda e riguardo, non ci sono. Googlo un po' fino a quando trovo questo articolo. Riassumo in breve: a volte succede che le DirectX, appunto, non compaiano nell'elenco delle reference (Non credo sia un baco della beta 2, quanto dell'installer delle DirectX SDK). Soluzione? Copiare manualmente le DLL che servono da C:\WINDOWS\assembly\GAC in una directory a piacimento. Occhio, non è così semplice, leggete l'articolo che ho segnalato prima. Io mi sono fatto un batch veloce che secondo me può servire anche ad altri, basta sostituire la mia directory di destinazione con la vostra.
copy C:\WINDOWS\assembly\GAC\Microsoft.DirectX\1.0.900.0__31bf3856ad364e35\*.dll K:\Documenti\DirectX
copy C:\WINDOWS\assembly\GAC\Microsoft.DirectX.AudioVideoPlayback\1.0.900.0__31bf3856ad364e35\*.dll K:\Documenti\DirectX
copy C:\WINDOWS\assembly\GAC\Microsoft.DirectX.Diagnostics\1.0.900.0__31bf3856ad364e35\*.dll K:\Documenti\DirectX
copy C:\WINDOWS\assembly\GAC\Microsoft.DirectX.Direct3D\1.0.900.0__31bf3856ad364e35\*.dll K:\Documenti\DirectX
copy C:\WINDOWS\assembly\GAC\Microsoft.DirectX.Direct3DX\1.0.900.0__31bf3856ad364e35\*.dll K:\Documenti\DirectX
copy C:\WINDOWS\assembly\GAC\Microsoft.DirectX.DirectInput\1.0.900.0__31bf3856ad364e35\*.dll K:\Documenti\DirectX
copy C:\WINDOWS\assembly\GAC\Microsoft.DirectX.DirectSound\1.0.900.0__31bf3856ad364e35\*.dll K:\Documenti\DirectX
Fatto questo, si può tornare nell'IDE di Visual Studio e questa volta si fa il Browse della directory dove sono state messe le DLL. Pensavo di aver risolto, finalmente, di poter compilare il mio buon StarTrooper, ma non è stato così.
Nel progetto vedo sempre i riferimenti alle DirectX segnalati come errore. La mia mission di compilare questo codice C# si sta facendo difficile e molto insidiosa. Sarà lo stress da Milan, sarà la serata calda ed afosa, ma proprio non ce la faccio. La cosa divertente è che su un altro PC ho fatto questa cosa senza grossi problemi (ho scritto un post proprio su questo blog), con .NET 2003 e senza sapere esattamente con quali DirectX abbia lavorato (me le sono trovate installate). Mah!!!