[C# / VS 2010] Plaatjes delen tussen meerdere projecten

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zit met het volgende probleem:

wij hebben een solution in Visual Studio 2010 (C#) dat bestaat uit een kleine 30 projecten. 1 project is onze resource project waarin we o.a. alle afbeeldigen centraal opslaan.

Alle andere projecten moeten gebruik maken van dit resource project. Dit resource project heeft o.a. een resource bestand waarin honderden afbeeldingen staan, die ieder ingesteld staan op "Linked at compile time". Hierdoor is het dus mogelijk om afbeeldingen nog heel eenvoudig te wijzigen door deze in de folder te overschrijven.

Vervolgens hebben we bij alle andere projecten (die allemaal uiteraard een referentie hebben naar dit resource project) het resource bestand (met de afbeeldingen) toegevoegd als "Add as link".

Echter dit geeft problemen. Het resource bestand met de afbeeldingen (de designer generated file) krijgt nu iedere keer een andere namespace, wanneer je het gebruikt in een bepaald project met bijvoorbeeld de "Select Recource" design UI editor.

We hebben wel wat andere mogelijkheden werkend gekregen, echter dan worden de afbeeldingen per project (per form resource file) ge-embed. Uiteraard willen we dat niet, omdat je dan niet zomaar een bepaald plaatje wat een kleine 2000x voorkomt makkelijk kan aanpassen.

Kortom is het binnen Visual Studio (2010) wel mogelijk om afbeeldingen centraal op te slaan (zodat je ze heel snel binnen je complete applicatie kan wijzigen) en toch in meerdere projecten kan gebruiken (en dus dat ze ook te selecteren zijn via de standaard Image selector UI editor)?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ik ga even een hele wilde gooi doen want ik heb niet echt een zinnige oplossing met projecten, namespaces en vinkjes in settings in VS2010 enzo. Mooi gaat 't niet worden; werken waarschijnlijk wel:

Wat je zou kunnen doen (denk ik) is in alle projecten de referentie naar 't resourceproject zelf eruit mikken. Bak een binary van je resource file en mikker die m.b.v. NuGet in een nuget package. Dat stelt geen kont voor en is 5 minuten werk. Zet die package ergens in een share ofzo en maak in de NuGet package manager een offline locatie (lees: naar die share) aan voor de packages. Vervolgens reference je in die 30 projecten die NuGet package.

Ja, bij elk project krijg je nu een kopie van de NuGet package (= die resource file = 'honderden images'). Ik ga er even van uit dat we 't hier hebben over een paar (zeg < 100) Mb file en dus over icoontjes en dat soort meuk. Maar je bent nu van je probleem af en elke keer als iemand de resource file aanpast (en een nieuwe NuGet package in de "offline locatie" mikt, dat is makkelijk zat te scripten, desnoods als build action) zal NuGet automatisch bij 't openen van die projecten je (binary) resource file (in de packages directory) updaten wanneer nodig.

Nogmaals: 't ain't pretty, maar als VS zoals jij beweert echt elke keer de namespace aanpast en er is geen optie om dat gedrag uit te schakelen dan is dit in ieder geval een haalbare workaround met de kanttekening dat we 't dan niet moeten hebben over resourcefiles van enkele honderden MB's of GB's.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Is de eerste hit op google niet wat je wilt? "visual studio share resources between projects"

http://visualstudiomagazi...ces-between-projects.aspx ?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Zoijar schreef op woensdag 25 januari 2012 @ 21:20:
Is de eerste hit op google niet wat je wilt? "visual studio share resources between projects"

http://visualstudiomagazi...ces-between-projects.aspx ?
Deze link had ik al gevonden, maar geeft totaal geen oplossing voor mijn probleem.


Het NuGet principe zien we niet zo zitten.


Maar er is goed nieuws. We hebben toch een workaround gevonden. Door bij alle projecten dezelfde "Default namespace" op te geven, wordt wel steeds de generated designer file van het resource bestand opnieuw gegenereerd, maar blijft de namespace hetzelfde.

Enige probleem is dus dat bij het toevoegen van nieuwe items aan de projecten de namespace niet correct is volgens onze inrichting. Maar goed dat is een kwestie van handmatig aanpassen dan.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op donderdag 26 januari 2012 @ 10:29:
Het NuGet principe zien we niet zo zitten.
Dat kan, maar mag ik vragen waarom? Wat is de reden?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Kalix
  • Registratie: November 2001
  • Laatst online: 26-08 10:43
Het maken van een nuget pakage lost het probleem niet op. Als in het project een resource uit de package gekozen word, dan maakt visual studio eeen kopie daarvoor in de resource file van het form waarop deze gebruikt wordt. Als later de package wijzigd, dan gaat de designer file en de kopie van de resource niet mee.

Acties:
  • 0 Henk 'm!

  • P-Storm
  • Registratie: September 2006
  • Laatst online: 12-09 10:02
Met nuget kan je dan simpel een update uitvoeren, en dan is alles ook weer upgedate. Ah blijkbaar verkeerd gedacht, lees hier boven mij maar ^^.

[ Voor 28% gewijzigd door P-Storm op 29-01-2012 22:12 ]

Pagina: 1