2010-10-14 16 views
0

Voici ce que je l'ai fait:icône de l'application de la charge par des ressources

J'ai créé un fichier resource.resx utilisant mon IDE (SharpDevelop) et a ajouté un logo.ico à elle. Le fichier Resource.resx ressemble à ceci:

<data name="logo" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> 
    <value> 
     AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAA... (etc etc) 

J'ai ensuite utilisé ResGen.exe pour compiler ce resource.resx dans un fichier resource.resources valide.

resgen.exe resource.resx resource.resources 

En utilisant la ligne de commande compilateur JScript.NET je tout compilé et inclus mon resource.resources qui a mon fichier logo.

jsc /res:resource.resources /out:app.exe /reference:UI.dll,Remote.dll app.cs 

Maintenant, je veux accéder à ce fichier logo de withing mon code, donc j'ai ceci:

System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly(); 
System.Drawing.Icon icon = new System.Drawing.Icon(assembly.GetManifestResourceStream("resource.resources.logo")); 

Cependant je reçois une exception d'exécution pour GetManifestResourceStream qui est nulle.

Je suppose que c'est un problème d'espace de noms j'ai donc essayé d'accéder au fichier de ressources uniquement avec GetManifestResourceStream("resource.resources") mais je reçois cette autre exception:

Argument 'picture' must be a picture that can be used as a Icon.

Toutes les idées seraient grandement appréciés, merci!

Répondre

0

Il se plaint du format de fichier, il ne le reconnaît pas comme une icône. Je ne peux pas dire à partir de votre extrait, pas assez de la valeur codée base64 est visible.

Je dois dire que si cet EDI vous fait écrire du code comme celui-ci alors c'est pas qui vous aide. Stocker des icônes dans les ressources est totalement trivial dans Visual Studio, il n'est pas nécessaire d'écrire du code du tout. L'édition Express a le même prix.