[.NET] Embedded resource pad veranderen

Pagina: 1
Acties:

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 23:43

GrimaceODespair

eens een tettenman, altijd ...

Topicstarter
In Visual Studio.NET C# wordt in het pad van embedded resources automatisch de namespace opgenomen van een project.

Bijvoorbeeld:
Bestand: App.ico
Project namespace: MyProject
Embedded resource pad: MyProject.App.ico

Weet iemand of het mogelijk is om gemakkelijk (ik heb het even niet over command-line tweaks) in Visual Studio 2005 het pad van een Embedded Resource (zoals het in de assembly terechtkomt) te veranderen? Of, specifiek wat ik eigenlijk wil, de namespace weglaten zonder defaultNamespace op de lege string te zetten?

Bijvoorbeeld:
Bestand: App.ico
Project namespace: MyProject
Embedded resource pad: App.ico

Wij onderbreken deze thread voor reclame:
http://kalders.be


  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

Volgens mij is dat niet mogelijk. Waarom wil je dit eigenlijks?

Skill is when luck becomes a habit.


  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 23:43

GrimaceODespair

eens een tettenman, altijd ...

Topicstarter
Het kan wel, want ik heb hier een dergelijke assembly voor me in reflector :) En die assembly is ook precies de reden dat ik het wil. Ik zou graag wat functionaliteit uitbreiden, maar dan moet ik die assembly kunnen reconstrueren (neen, ik heb de broncode niet).

Ik ben er ook redelijk van overtuigd dat het met de nodige command-line tools kan (al.exe etc), maar als het makkelijker kan: graag!

Wij onderbreken deze thread voor reclame:
http://kalders.be


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Om de naam van de resource aan te passen, kun je simpel rechts klikken op het betreffende resource item en dan voor 'properties' kiezen. Vervolgens kun je dan bij 'file name' de naam aanpassen.
Namespaces zorgen ervoor dat hetzelfde element meerdere keren kan bestaand (denk aan Textbox in System.Windows.Forms en System.Web.UI namespaces) kan bestaan. In C# kun je de 'default namespace' leeg maken en daarmee heb je volledige zeggenschap over de naam van de embedded resource, echter mocht het resource bestand tweemaal voorkomen, dan krijg je een MSIL conflicht en 'crashed' je applicatie.

Om resource collisions te voorkomen wordt daarom de default namespace + directory path in solution + bestandsnaam gebruikt.

De beste methode om resources zonder namespaces te gebruiken is om via de classes uit de System.Resource namespace je eigen 'resource' bestand moeten gaan beheren.

If it isn't broken, fix it until it is..


  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 23:43

GrimaceODespair

eens een tettenman, altijd ...

Topicstarter
Niemand_Anders schreef op maandag 18 juni 2007 @ 17:03:
In C# kun je de 'default namespace' leeg maken en daarmee heb je volledige zeggenschap over de naam van de embedded resource.
Ok, doenbaar, maar dan moet ik wel handmatig het projectbestand gaan editen, want een lege namespace laat Visual Studio zelf niet toe. Je kan het handmatig editen in het bestand, maar dan mag je het property-venster van defaultNamespace niet meer aanraken, of je bent weer verplicht een namespace in te vullen.

Maar goed: ik kom er wel zo.

Wij onderbreken deze thread voor reclame:
http://kalders.be