Bonjour à tous, et à toutes.
Et oui me revoila encore un peu bloqué dans l'exploration de XNA.
Je cherche à présent à créer facilement des fichiers xnb sans devoir passer par la case visual studio. (Et oui je vois mal des graphistes tester leur développement en devant utiliser visual studio pour intégrer leurs ressources
Bref, j'ai créer sur ma classe map un reader et un writer comme il faut.
Et à coté une classe qui va me servir à faire la compilation de mes ressources.
dont voici le source :
Pour tout cela je me suis inspiré de ce qui est écrit sur la page web http://nickgravelyn.com/2008/10/crea...own-xnb-files/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 public class XnaCompiler { private ConstructorInfo[] constructors; private MethodInfo addWriter; private MethodInfo compileContent; private string cheminContent; public XnaCompiler(string cheminContent) { this.cheminContent = cheminContent; constructors = typeof(ContentCompiler).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance); addWriter = typeof(ContentCompiler).GetMethod("AddTypeWriter",BindingFlags.NonPublic | BindingFlags.Instance); compileContent = typeof(ContentCompiler).GetMethod("Compile",BindingFlags.NonPublic | BindingFlags.Instance); } public void compilerCarte(Map map,string repertoireRelatif) { ContentCompiler compilateur = constructors[0].Invoke(null) as ContentCompiler; Map.MapWriter writer = new Map.MapWriter(); addWriter.Invoke(compilateur, new object[] { writer }); string repertoireFinal = Path.Combine(cheminContent, repertoireRelatif); using (FileStream stream = new FileStream( Path.Combine(repertoireFinal , map.NomCarte+".xnb"), FileMode.Create)) { compileContent.Invoke(compilateur, new object[] { stream, map, TargetPlatform.Windows, true, repertoireFinal , repertoireFinal }); } }
Mais lorsque je cherche à lancer la compilation de mon objet map, j'obtiens l'erreur : Une exception a été levée par la cible d'un appel. de type TargetInvocationException.
Cela se produit sur lequand je regarde sur la console avant le targetInvocationException j'ai une erreur de type ArgumentNullException. Pourtant avec le débugueur, je n'ai visiblement aucun de mes arguments qui n'est pas initialisé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 compileContent.Invoke(compilateur, new object[] { stream, map, TargetPlatform.Windows, true, repertoireFinal , repertoireFinal });
SInon sur l'explorateur de fichier, j'ai mon fichier xnb que je cherche à créeer, mais avec une taille de 0 octet.
Si vous avez une idée de l'origine de ce problème merci d'avance.
Partager